我有一个功能:
function Check(o)
{
alert(/* o is a DOM element ? "true" : "false" */);
}
如何检查参数o
是否是DOM对象?
答案 0 :(得分:65)
DOM元素实现Element
接口。所以你可以使用:
function Check(o) {
alert(o instanceof Element);
}
答案 1 :(得分:25)
检查nodeName
属性是否存在。
基本检查它是否为Node
:查看DOM lvl 1 specs,检查节点定义。
如果您在说Element
tagName
function Check(o)
{
alert(o.tagName ? "true" : "false");
}
属性时确实意味着它,请查看相同规范中的元素定义
所以回顾一下,做任何一个
function Check(o)
{
alert(o.nodeName ? "true" : "false" );
}
检查它是否是DOM元素或
{{1}}
检查它是否是DOM节点
答案 2 :(得分:9)
我不会检查是否存在属性,而是检查其特定值。
这假设您正在寻找“类型1”元素。
function Check(o) {
alert( o && o.nodeType && o.nodeType === 1 );
}
您仍然可以获得一个具有nodeType
属性但实际上不是DOM节点的对象,但它也必须具有匹配值1
才能产生误报。< / p>
答案 3 :(得分:4)
迟到的答案,但文档片段也可以是一个节点:
function isNode(node) {
return node && (node.nodeType === 1 || node.nodeType == 11);
}
答案 4 :(得分:0)
您可以使用以下功能
function isNode(o)
{
return o && 'nodeType' in o;
}
答案 5 :(得分:0)
您可以检查DOM节点是否是带有JQuery的元素:
element.is("*")