JavaScriptisDOM-如何检查JavaScript对象是否是DOM对象?我试着得到:document.createElement('div') //=> true{tagName: 'foobar something'} //=> false在我自己的脚本中,我经常使用这个,因为我从来不需要tagName作为财产:if (!object.tagName) throw ...;因此,对于第二个对象,我想出了以下的快速解决方案-这主要是有效的。;)问题是,这取决于浏览器强制执行只读属性,而这并不是所有浏览器都能做到的。function isDOM(obj) {
var tag = obj.tagName;
try {
obj.tagName = ''; // Read-only for DOM, should throw exception
obj.tagName = tag; // Restore for normal objects
return false;
} catch (e) {
return true;
}}有好的替代品吗?
3 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
if(typeof node == "object" && "nodeType" in node && node.nodeType === 1 && node.cloneNode){ // most probably this is a DOM node, we can clone it safely clonedNode = node.cloneNode(false);}
编辑:
console.log(typeof node.cloneNode); // objectconsole.log(node.cloneNode instanceof Function); // false
true
添加回答
举报
0/150
提交
取消