JavaScript函数接收一个可能是DOM元素的参数。如何确保参数是一个DOM元素而不是另一个对象?测试对象是否为DOM元素
3
A
回答
1
试试这个。
检查它是否是DOM对象。
if(arg.tagName){
//Its a dom element
}
要检查它是否是一个jQuery对象
if(arg.jquery){
//Its a jQuery object
}
工作demo
或者你可以试试这个函数将返回true,如果作为参数传递的元素是DOM元件。
function isElement(o){
return (
typeof HTMLElement === "object" ? o instanceof HTMLElement :
typeof o === "object" && o.nodeType === 1 && typeof o.nodeName==="string"
);
2
随着现代浏览器,我认为它是像
e instanceof Element
e instanceof Text // text node
+0
不错。并为您提供参考:https://developer.mozilla.org/en/HTML/Element –
+0
IE8也很友好。 – Leonid
0
只是检查是不是有一个innerHTML的功能或不是对象。
例如:
function (obj) {
if(!!obj.innerHTML) // force the function to be boolean
{
// do something here if it was a html element
}
else {
// do stuff here if it wasn't
}
}
1
el instanceof Node
会给你true
如果EL是DOM的一部分。 el instanceof Element
- true
如果它也是一个元素。
相关问题
- 1. 测试DOM元素还是JSON
- 2. Firebase对象将DOM元素返回到DOM元素的对象
- 3. 的jQuery:输入变量测试是否是DOM元素
- 4. 测试元素是否为数组c
- 5. AngularJs E2E如何测试DOM中是否存在元素
- 6. DOM元素和jQuery对象
- 7. Javascript单元测试DOM元素
- 8. 检测JavaScript对象是否具有引用DOM元素的某些属性
- 9. 测试div是否没有元素
- 10. 测试元素是否存在jquery
- 11. 检查Dom元素是否为Native/no自定义元素
- 12. 测试元素是数字还是AS3中的对象
- 13. 检测给定Javascript对象是否为DOM元素的最佳方法是什么?
- 14. 测试对象是否是Clojure中的Java基元数组
- 15. jQuery将DOM元素分配给对象
- 16. 包装JavaScript对象中的DOM元素
- 17. 测试对象是否已释放
- 18. 测试ActiveSupport :: TimeWithZone对象是否相等
- 19. 测试对象是否实现接口
- 20. Python测试是否存在对象
- 21. iphone - 测试对象是否存在
- 22. 测试对象是否存在?
- 23. 测试python对象是否有效
- 24. 测试两个对象是否相等
- 25. 测试整数是否为素数
- 26. 如何测试两个jQuery包装的DOM元素是否相同?
- 27. cocoa touch - 测试对象是否是客观的C对象
- 28. 反应测试错误。目标容器不是DOM元素
- 29. 单元测试函数对象是否被调用
- 30. 单元测试域对象
如果'arg = {tagName:'pancakes'}',则失败。 –
我在同一个答案中添加了另一个解决方案,请看看。 – ShankarSangoli
'元素'应该工作,不是吗?还有文字节点需要考虑。但是,对于你感兴趣的问题的确切要求要比对房地产等进行间接检查要好。 –