2010-01-31 43 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