2012-10-19 20 views
0

可能重复:
Javascript isDOM — How do you check if a Javascript Object is a DOM Object?如何确定一个元素来自DOM?

在我的代码,我有一个对象,这需要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"; 
} 

这段代码是否足以状态元素来自DOM?

+0

如果元素为空(或未定义),将会崩溃。您是否试图区分文档中的元素和分离的元素,还是完全区分DOM元素和其他类型的对象? – nnnnnn

+0

检查'元素是否为空'和'元素等于html元素或parentNode不为空' – Asciiom

+0

@Jack是的,谢谢:) – dervlap

回答

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. 
} 
相关问题