使用$('html').html()我可以在<html>标签(<头>,<身体>等)内获得html。但是我怎么能得到< HTML >标签的实际HTML(带属性)?

或者,是否有可能获得页面的整个HTML(包括doctype, < HTML >等)与jQuery(或普通的旧JavaScript)?


jQuery:

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

在纯Javascript中:

var html_string = document.documentElement.outerHTML

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

所以美元(html) .attr(“someAttribute”);会给你元素html的someAttribute的值

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

另外:

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

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


这是如何获得html DOM元素纯JS:

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

or

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,在这个问题中详细阐述过。


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

document.documentElement

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

更新:然后抓取html元素作为字符串,你会做:

document.documentElement.outerHTML

我发现其他简单的方法使用纯javascript:

const htmlElement = document.querySelector(':root') console.log(htmlElement)