如何测试传递给函数的元素是否是文档本身?

时间:2013-04-30 12:09:14

标签: javascript jquery function selector document

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

通过设置:

,一切正常
element.innerHTML = "<p>foo</p>";

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

document.innerHTML

document[0].innerHTML
无法设置

(至少我的屏幕上没有显示任何内容: - )

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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

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