代码之家  ›  专栏  ›  技术社区  ›  dpq

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

  •  1
  • dpq  · 技术社区  · 15 年前

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

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

    如何应用类似的检查来查看元素是否是窗口?核对 DOMWindow 不起作用,这样的函数似乎未定义。

    4 回复  |  直到 15 年前
        1
  •  2
  •   lonesomeday    15 年前

    如果您只需要检查对象是否是当前浏览器窗口(而不是其他浏览器窗口),您可以使用 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
  •  5
  •   Pointy    15 年前

    dom元素的“tagname”属性将告诉您它是什么类型的dom元素。我不知道有什么好方法可以检查引用是否是“window”实例,而不是通过duck输入。

    而不是检查参考文献 ,也许您应该检查对象可以 或似乎能够做到。你到底想通过确定一个物体的性质来达到什么目的?

    因为javascript对象的延展性很强,即使你确定一个对象是 <div> dom实例不一定能告诉您关于它的一切,因为代码可能已经改变了对象的属性,使其无法识别。

        3
  •  2
  •   nikc.org    15 年前

    jQuery source 有一个解决方案:

    // A crude way of determining if an object is a window
    function isWindow ( obj ) {
        return obj && typeof obj === "object" && "setInterval" in obj;
    }
    
        4
  •  0
  •   Josh Bedo    15 年前

    使用jquery,它应该像 if($('div').length==0) { 他们不是潜水艇 }否则{ //它们是页面上的DIV }

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