gpt4 book ai didi

javascript - 如何检查 DOM 节点是否为 `html` 节点

转载 作者:行者123 更新时间:2023-11-28 20:13:37 27 4
gpt4 key购买 nike

编辑:这是我问过的最愚蠢的问题。我会保留它,以提醒自己不要太快提问。

如何检查我选择的 DOM 节点是否为 html 节点?我注意到它不具有通常的属性。例如:

var div = document.getElementsByTagName('div')[0];
var html = document.getElementsByTagName('html');

div instanceof HTMLElement; // true
html instanceof HTMLElement; // false

div.tagName; // "DIV"
html.tagName; // undefined

特别是,我想要一个适用于所有 DOM 节点(divspan 等)的检查。问题是我的代码爬取 DOM 并检查某个属性;如果代码没有找到该属性,它将到达 html 节点并因以下行而引发错误:

if (node.tagName.toUpperCase() !== 'OBJECT') { }

nodehtml节点时,这会抛出TypeError,因为node.TagName未定义。

提前致谢。

最佳答案

问题是您正在查看 getElementsByTagName 返回的数组,而不是返回的第一个元素。试试这个:

var div = document.getElementsByTagName('div')[0];
var html = document.getElementsByTagName('html')[0]; // notice [0]

div instanceof HTMLElement; // true
html instanceof HTMLElement; // true

div.tagName; // "DIV"
html.tagName; // "HTML"

注意:在 Chrome 开发者工具版本 30.0.1599.101 m 中进行测试

关于javascript - 如何检查 DOM 节点是否为 `html` 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19528098/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com