使用$('html').html()
我可以得到内的HTML<html>
标签(<head>
,<body>
,等)。但是我怎样才能获得<html>
标签的实际 HTML (带有属性)?
或者,是否可以<html>
使用 jQuery(或普通的旧 JavaScript)获取页面的整个 HTML(包括 doctype 、 等)?
使用$('html').html()
我可以得到内的HTML<html>
标签(<head>
,<body>
,等)。但是我怎样才能获得<html>
标签的实际 HTML (带有属性)?
或者,是否可以<html>
使用 jQuery(或普通的旧 JavaScript)获取页面的整个 HTML(包括 doctype 、 等)?
html
本地获取元素的最简单方法是:
document.documentElement
这是参考:https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement。
更新:然后将html
元素作为字符串抓取,您将执行以下操作:
document.documentElement.outerHTML
这是纯粹使用 JS 获取 html DOM 元素的方法:
var htmlElement = document.getElementsByTagName("html")[0];
或者
var htmlElement = document.querySelector("html");
如果你想使用 jQuery 从中获取属性......
$(htmlElement).attr(INSERT-ATTRIBUTE-NAME);
除了一些其他答案之外,您还可以通过以下方式访问 HTML 元素:
var htmlEl = document.body.parentNode;
然后你可以得到内部的 HTML 内容:
var inner = htmlEl.innerHTML;
这样做似乎稍微快一点。但是,如果您只是获取 HTML 元素,则document.body.parentNode
似乎要快一些。
拥有 HTML 元素后,您可以使用getAttribute
和setAttribute
方法来处理属性。
对于 DOCTYPE,您可以使用document.doctype
,在这个问题中有详细说明。
在 jQuery 中:
var html_string = $('html').outerHTML()
在纯 Javascript 中:
var html_string = document.documentElement.outerHTML
如果您想使用 jQuery 获取 HTML 元素的属性,您可以使用 .attr();
所以$('html').attr('someAttribute');
会给你someAttribute
元素的值html
这里有一个 jQuery 插件:http : //plugins.jquery.com/project/getAttributes
允许您从 HTML 元素中获取所有属性