使用$('html').html(),我可以获得<html>标记(<head>,<body>等)中的HTML。但是我怎样才能获得<html>标签的实际HTML(带属性)呢?或者,是否可以使用jQuery(或普通的JavaScript)获取页面的整个HTML(包括doctype,<html>等)?
$('html').html()
<html>
<head>
<body>
relj7zay1#
获取html元素的最简单方法是:
html
document.documentElement
参考资料如下:https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement。UPDATE:然后将html元素作为字符串抓取,您可以执行以下操作:
document.documentElement.outerHTML
jaql4c8m2#
下面是如何纯粹使用JS获取html DOM元素:
var htmlElement = document.getElementsByTagName("html")[0];
或
var htmlElement = document.querySelector("html");
如果你想使用jQuery来获取它的属性...
$(htmlElement).attr(INSERT-ATTRIBUTE-NAME);
dz6r00yl3#
除了一些其他答案,您还可以通过以下方式访问HTML元素:
var htmlEl = document.body.parentNode;
然后你可以得到内部的HTML内容:
var inner = htmlEl.innerHTML;
这样做似乎是marginally faster。但是,如果您只是获取HTML元素,则document.body.parentNode看起来是quite a bit faster。有了HTML元素之后,可以使用getAttribute和setAttribute方法来处理属性。对于DOCTYPE,您可以使用document.doctype,这在this question中进行了详细说明。
document.body.parentNode
getAttribute
setAttribute
document.doctype
myss37ts4#
在jQuery中:
var html_string = $('html').outerHTML()
在简单的JavaScript中:
var html_string = document.documentElement.outerHTML
au9on6nz5#
如果您想通过jQuery获取HTML元素属性,可以使用.attr();所以$('html').attr('someAttribute');会给予元素html的someAttribute的值http://api.jquery.com/attr/
.attr();
$('html').attr('someAttribute');
someAttribute
这里有一个jQuery插件:http://plugins.jquery.com/project/getAttributes它允许您从HTML元素中获取所有属性
rvpgvaaj6#
我发现了另一种使用纯JavaScript的简单方法:
const htmlElement = document.querySelector(':root') console.log(htmlElement)
dphi5xsq7#
function toggleDarkMode(checked) { if (checked) { document.documentElement.setAttribute('data-bs-theme', 'dark'); } else { document.documentElement.removeAttribute('data-bs-theme'); } }
7条答案
按热度按时间relj7zay1#
获取
html
元素的最简单方法是:参考资料如下:https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement。
UPDATE:然后将
html
元素作为字符串抓取,您可以执行以下操作:jaql4c8m2#
下面是如何纯粹使用JS获取html DOM元素:
或
如果你想使用jQuery来获取它的属性...
dz6r00yl3#
除了一些其他答案,您还可以通过以下方式访问HTML元素:
然后你可以得到内部的HTML内容:
这样做似乎是marginally faster。但是,如果您只是获取HTML元素,则
document.body.parentNode
看起来是quite a bit faster。有了HTML元素之后,可以使用
getAttribute
和setAttribute
方法来处理属性。对于DOCTYPE,您可以使用
document.doctype
,这在this question中进行了详细说明。myss37ts4#
在jQuery中:
在简单的JavaScript中:
au9on6nz5#
如果您想通过jQuery获取HTML元素属性,可以使用
.attr();
所以
$('html').attr('someAttribute');
会给予元素html
的someAttribute
的值http://api.jquery.com/attr/
附加:
这里有一个jQuery插件:http://plugins.jquery.com/project/getAttributes
它允许您从HTML元素中获取所有属性
rvpgvaaj6#
我发现了另一种使用纯JavaScript的简单方法:
dphi5xsq7#