如何使用JavaScript / jQuery获取<html>标记HTML?
使用$('html').html()
我可以在<html>
标签( <head>
, <body>
等)中获取HTML。 但是我怎样才能得到<html>
标签的实际HTML(带有属性)?
或者,是否有可能使用jQuery(或普通的旧JavaScript)获取页面的整个HTML(包括doctype, <html>
等)?
原生获取html
元素的最简单的方法是:
document.documentElement
以下是参考: https : //developer.mozilla.org/en-US/docs/Web/API/Document.documentElement 。
更新:然后抓住html
元素作为一个string,你会这样做:
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');
会给你元素html
的someAttribute
的值
另外:
这里有一个jQuery插件: http : //plugins.jquery.com/project/getAttributes
这使您可以从HTML元素获取所有属性