如何使用 JavaScript / jQuery 获取 <html> 标签 HTML?

IT技术 javascript jquery
2021-02-02 00:25:47

使用$('html').html()我可以得到内的HTML<html>标签(<head><body>,等)。但是我怎样才能获得<html>标签的实际 HTML (带有属性)?

或者,是否可以<html>使用 jQuery(或普通的旧 JavaScript)获取页面的整个 HTML(包括 doctype 、 等)?

5个回答

html本地获取元素的最简单方法是:

document.documentElement

这是参考:https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement

更新:然后将html元素作为字符串抓取,您将执行以下操作:

document.documentElement.outerHTML
你多久获得一次 html 元素的引用!?一般来说,我认为性能不应该是一个问题。无论如何,这实际上是更好的答案,但它是在获奖后出现的。
2021-03-21 00:25:47
很好,我使用这个实现了一个亮度滑块: <input type="range" min="0.50" max="1.0" value="0.95" step="0.01" onchange= "document.documentElement.style.filter= 'brightness('+this.value+')'">
2021-03-29 00:25:47
有关documentElement浏览器兼容性的更多信息,另请参阅此问题stackoverflow.com/q/11391827/177710
2021-04-12 00:25:47

这是纯粹使用 JS 获取 html DOM 元素的方法:

var htmlElement = document.getElementsByTagName("html")[0];

或者

var htmlElement = document.querySelector("html");

如果你想使用 jQuery 从中获取属性......

$(htmlElement).attr(INSERT-ATTRIBUTE-NAME);
如果你能解释为什么这回答了这个问题,你的答案会好得多另外,请突出显示代码并单击{}按钮或按 ctrl + k 将其标记为代码。
2021-04-09 00:25:47

除了一些其他答案之外,您还可以通过以下方式访问 HTML 元素:

var htmlEl = document.body.parentNode;

然后你可以得到内部的 HTML 内容:

var inner = htmlEl.innerHTML;

这样做似乎稍微快一点但是,如果您只是获取 HTML 元素,则document.body.parentNode似乎要快一些

拥有 HTML 元素后,您可以使用getAttributesetAttribute方法来处理属性

对于 DOCTYPE,您可以使用document.doctype,在这个问题中有详细说明

请注意:如果正文尚未在文档中可用,这将失败。
2021-03-25 00:25:47
在这种情况下,document.head.parentNode如果有 head 元素仍然有效。
2021-04-06 00:25:47

在 jQuery 中:

var html_string = $('html').outerHTML()

在纯 Javascript 中:

var html_string = document.documentElement.outerHTML

如果您想使用 jQuery 获取 HTML 元素的属性,您可以使用 .attr();

所以$('html').attr('someAttribute');会给你someAttribute元素的值html

http://api.jquery.com/attr/

此外:

这里有一个 jQuery 插件:http : //plugins.jquery.com/project/getAttributes

允许您从 HTML 元素中获取所有属性

getAttributes() 项目现在有点老了(2009 年 2 月)。
2021-03-31 00:25:47