如何< html>使用JavaScript / jQuery获取HTML标签?

ttp71kqs  于 2023-06-29  发布在  jQuery
关注(0)|答案(7)|浏览(122)

使用$('html').html(),我可以获得<html>标记(<head><body>等)中的HTML。但是我怎样才能获得<html>标签的实际HTML(带属性)呢?
或者,是否可以使用jQuery(或普通的JavaScript)获取页面的整个HTML(包括doctype,<html>等)?

relj7zay

relj7zay1#

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

document.documentElement

参考资料如下:https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement
UPDATE:然后将html元素作为字符串抓取,您可以执行以下操作:

document.documentElement.outerHTML
jaql4c8m

jaql4c8m2#

下面是如何纯粹使用JS获取html DOM元素:

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

var htmlElement = document.querySelector("html");

如果你想使用jQuery来获取它的属性...

$(htmlElement).attr(INSERT-ATTRIBUTE-NAME);
dz6r00yl

dz6r00yl3#

除了一些其他答案,您还可以通过以下方式访问HTML元素:

var htmlEl = document.body.parentNode;

然后你可以得到内部的HTML内容:

var inner = htmlEl.innerHTML;

这样做似乎是marginally faster。但是,如果您只是获取HTML元素,则document.body.parentNode看起来是quite a bit faster
有了HTML元素之后,可以使用getAttributesetAttribute方法来处理属性。
对于DOCTYPE,您可以使用document.doctype,这在this question中进行了详细说明。

myss37ts

myss37ts4#

在jQuery中:

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

在简单的JavaScript中:

var html_string = document.documentElement.outerHTML
au9on6nz

au9on6nz5#

如果您想通过jQuery获取HTML元素属性,可以使用.attr();
所以$('html').attr('someAttribute');会给予元素htmlsomeAttribute的值
http://api.jquery.com/attr/

附加:

这里有一个jQuery插件:http://plugins.jquery.com/project/getAttributes
它允许您从HTML元素中获取所有属性

rvpgvaaj

rvpgvaaj6#

我发现了另一种使用纯JavaScript的简单方法:

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

dphi5xsq7#

function toggleDarkMode(checked) {
    if (checked) {
        document.documentElement.setAttribute('data-bs-theme', 'dark');
    } else {
        document.documentElement.removeAttribute('data-bs-theme');
    }
}

相关问题