如何使用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元素后,可以使用getAttributesetAttribute方法来处理属性。

对于DOCTYPE,您可以使用document.doctype , 这个问题已经详细阐述了。

在jQuery中:

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

在平凡的Javascript中:

 var html_string = document.documentElement.outerHTML 

如果你想用jQuery获得一个HTML元素的属性,你可以使用.attr();

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

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

另外:

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

这使您可以从HTML元素获取所有属性