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
'元素'應該工作,不是嗎?還有文字節點需要考慮。但是,對於你感興趣的問題的確切要求要比對房地產等進行間接檢查要好。 –