gpt4 book ai didi

javascript - 在 javascript 中,如何确定 dom 对象的类型,例如 HTMLLIElement 或 HTMLElement

转载 作者:行者123 更新时间:2023-11-28 05:07:15 24 4
gpt4 key购买 nike

对于dom元素,如何获取对象类型?

我能看到的唯一线索是 <code>_</code><em>proto<code>_</code></em>使用相同名称的方法。有希望地,它有一个继承<code>_</code><em>proto<code>_</code></em>

除了 IE,这是正确的路径吗?

如果是这样,会怎样

function getNodeType( node ) return string
// would return HTMLLIElement for example

function isNodeType( node, type ) return boolean
// whether node is or is inherited from that type

会是什么样子?

最佳答案

如果您只处理一个文档,

instanceof 应该没问题。如果您正在测试来自另一个框架的对象,则 instanceof 将不起作用:

document.body instanceof HTMLBodyElement  // true
var iframe = document.body.appendChild(document.createElement('iframe'));
iframe.contentDocument.body instanceof HTMLBodyElement // false!

相反,您必须进行字符串比较。这就是 Google Closure 最终对 implement goog.isArray 所做的事情(在发明 Array.isArray([]) 之前)。例如:

iframe.contentDocument.body.toString() === '[object HTMLBodyElement]'  // true

但我建议只使用 tagNamenodeName

关于javascript - 在 javascript 中,如何确定 dom 对象的类型,例如 HTMLLIElement 或 HTMLElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5724717/

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