如何确保元素来自DOM?

时间:2012-10-19 08:55:15

标签: javascript dom

  

可能重复:
  Javascript isDOM — How do you check if a Javascript Object is a DOM Object?

在我的代码中,我有一个带有DOM元素的对象。

以下代码已更改为最低限度,以便保持示例清晰。

var Test = function(element){
  //if element does not come from the DOM -> throw
};

我怎样才能确定这个元素来自DOM树?

if(element.parentNode === null) {
  throw "not coming from the DOM";
}

这个代码足以使state元素来自DOM吗?

1 个答案:

答案 0 :(得分:0)

你可以用jQuery做到这一点,jQuery对象$(“#myid”)总是返回一些东西 - 一个jQuery对象。要检查它是否实际代表页面上的现有DOM元素,您可以使用以下内容:

if ( $("#myid").length > 0 ) {
//do something
}

或者根据此answer,你可以这样检查:

var elementInDocument = function(element) {
    while (element = element.parentNode) {
        if (element == document) {
            return true;
        }
    }
    return false;
}

或者像这样:

var element =  document.getElementById('elementId');
if (typeof(element) != 'undefined' && element != null)
{
  // exists.
}