2012-10-19 41 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. 
} 
相關問題