2010-01-31 47 views
0

我需要一個檢測參數是否爲HTML元素的XB(跨瀏覽器)方法。檢測參數是否爲Javascript HTML元素數據類型

使用下面的代碼給出了不同的瀏覽器不同的結果:

Object.prototype.toString.call(element); 
// returns in FF "[object HTMLDivElement]"; 
// returns in IE "[object Object]"; 

我發現另一種方法是:

if(element.nodeType) // true for a HTML Element; 

是否有人知道一個XB測試的解決方案?

+0

請參閱:http://stackoverflow.com/questions/120262/whats-the-best-way-to-detect-if-a-given-javascript-object-is-a-dom-element – Shog9 2010-01-31 22:47:57

回答

1

你想這樣的:

if (element.nodeType === element.ELEMENT_NODE) 
// Element.prototype.ELEMENT_NODE === 1 

if (element.nodeType)幾乎總是如此。例如,註釋的節點類型爲8,所以即使它不是,也會將其作爲元素檢測到。

+0

您必須明確地比較'1'。雖然符號常量'Node.ELEMENT_NODE'自最早的DOM 1級核心規範開始就已定義,但IE並未提供它。 – bobince 2010-02-01 16:00:42