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. hasOwnProperty()是否對DOM元素進行了標準化測試?
- 2. 測試DOM元素還是JSON
- 3. Firebase對象將DOM元素返回到DOM元素的對象
- 4. 的jQuery:輸入變量測試是否是DOM元素
- 5. 測試元素是否爲數組c
- 6. 測試對象是否是一個DOM事件
- 7. AngularJs E2E如何測試DOM中是否存在元素
- 8. 將Javascript對象轉換爲dom元素
- 9. DOM元素和jQuery對象
- 10. jQuery對象和DOM元素
- 11. Javascript單元測試DOM元素
- 12. jQuery:測試元素是否爲MATCHED元素的第一個
- 13. 有對象的DOM DOM元素
- 14. 檢測JavaScript對象是否具有引用DOM元素的某些屬性
- 15. 在Chrome調試器中將DOM元素作爲對象查看
- 16. 用茉莉花測試DOM元素
- 17. 測試是否元素存在
- 18. 測試元素是否存在jquery
- 19. 測試div是否沒有元素
- 20. 測試某些元素是否可見
- 21. 檢查Dom元素是否爲Native/no自定義元素
- 22. 測試元素是數字還是AS3中的對象
- 23. 檢測給定Javascript對象是否爲DOM元素的最佳方法是什麼?
- 24. 測試對象是否是Clojure中的Java基元數組
- 25. 測試對象是否存在?
- 26. 測試對象是否已釋放
- 27. 測試對象是否實現接口
- 28. 測試python對象是否有效
- 29. 測試對象是否未被刪除
- 30. 測試兩個對象是否相等
如果'arg = {tagName:'pancakes'}',則失敗。 –
我在同一個答案中添加了另一個解決方案,請看看。 – ShankarSangoli
'元素'應該工作,不是嗎?還有文字節點需要考慮。但是,對於你感興趣的問題的確切要求要比對房地產等進行間接檢查要好。 –