【问题标题】:How do I test if the element being passed to a function is the document itself?如何测试传递给函数的元素是否是文档本身?
【发布时间】:2013-04-30 12:09:13
【问题描述】:

我正在编写一个将一些代码注入 HTML 元素的小脚本。

通过设置一切正常:

element.innerHTML = "<p>foo</p>";

除非我通过 document 本身,因为两者:

document.innerHTML

document[0].innerHTML

无法设置(至少我的屏幕上没有显示 :-)

问题:
如何测试我传递的元素是文档本身还是正文或其他 HTML 元素?

【问题讨论】:

  • 呃...element === document 有什么问题?
  • ahm...看起来太容易了...让我试试:-)
  • @raina77ow:太好了!请给出答案,以便我检查。

标签: javascript jquery function selector document


【解决方案1】:

好吧,你可以检查传递的对象是否与document相同:

if (element === document) {
   // ...
}

【讨论】:

    【解决方案2】:

    您可以通过阅读[[Class]] 属性进行检查。

    Object.prototype.toString.call( document ); // [object HTMLDocument]
    Object.prototype.toString.call( document.body ); // [object HTMLBodyElement]
    

    分别将传递的变量名传入.call()

    【讨论】:

    • @frequent 当然也可以,但前提是您不处理多框架或多窗口环境
    猜你喜欢
    • 2016-05-05
    • 2016-05-07
    • 2017-01-29
    • 2011-04-20
    • 2016-01-05
    • 2021-03-04
    • 2020-12-06
    • 2018-03-26
    相关资源
    最近更新 更多