【发布时间】:2010-09-27 21:51:06
【问题描述】:
我想得到:
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;
}
}
有没有好的替代品?
【问题讨论】:
-
我是否迟钝地想知道“DOM 对象”是否不仅应涵盖元素,还应涵盖所有节点(文本节点、属性等)?您提出问题的所有答案和方式往往表明这个问题专门针对元素......
标签: javascript dom object