确定对象是<div>还是窗口</div>

时间:2010-11-17 13:38:05

标签: javascript dom

据我所见,可以在JavaScript中验证某个对象实际上是一个div元素:

if (element.constructor  == HTMLDivElement) {
  //...
}

如何应用类似的检查以查看元素是否为窗口?检查DOMWindow不起作用,这样的功能似乎未定义。

4 个答案:

答案 0 :(得分:5)

DOM元素的“tagName”属性将告诉您它是什么类型的DOM元素。我不知道有什么好的方法来检查引用是否是一个“窗口”实例而不是鸭子类型。

您可能应该检查对象可以做什么,或者似乎能够做什么,而不是检查参考。你究竟想通过确定一个物体的性质来完成什么?

因为Javascript对象具有可塑性,即使你确定一个对象是一个<div> DOM实例,也不一定会告诉你关于它的一切,因为代码可能已经改变了对象的属性而无法识别。

答案 1 :(得分:2)

如果您只需要检查对象是否是当前浏览器窗口(而不是另一个浏览器窗口),您可以通过使用window对象进行简单的身份检查来轻松完成此操作(只要您没有超越它)。

if (obj === window) {
    // it's your window
} else if (obj.nodeName && (obj.nodeName.toLowerCase() === 'div')) {
    // it's a div
} else {
    // it's something else
}

答案 2 :(得分:2)

jQuery source出来一个解决方案:

// A crude way of determining if an object is a window
function isWindow ( obj ) {
    return obj && typeof obj === "object" && "setInterval" in obj;
}

答案 3 :(得分:0)

使用jquery它应该如此简单 如果($('div')。length == 0) {     //他们没有div }其他{    //他们是页面上的div }

您还可以检查ID或类是否存在