標題中的等式如何是錯誤的?如何檢查兩個jQuery選擇器是否指向相同的DOM對象?
回答
你比較兩個不同jQuery的的對象,因爲你(對等式的每一側一次)調用$()
兩次,as MooGoo explains jQuery的創建每次調用時間爲新的包裝對象。這就是爲什麼比較結果返回false。
通過使用get()
或數組解引用,可以從每個jQuery對象中提取DOM對象,然後比較這些元素。
$('body').get(0) == $('body').get(0)
$('body')[0] == $('body')[0]
如果你想測試對jQuery選擇,使用is()
:因爲兩個相同的選擇相同body
DOM元素符合以下兩個返回true。請注意,除非您的選擇器是相同的,否則您使用的選擇器可能不一定匹配相同的DOM元素(使用上面的元素更好)。這也返回true:
$('body').is('body')
使用$。是()
檢查當前匹配組針對一個選擇器,元件,或jQuery對象元素和返回
true
如果這些元素中的至少一個相匹配的給出的參數 ...與其他過濾方法不同,
.is()
不會創建新的jQuery對象。相反,它允許您在不修改的情況下測試jQuery對象的內容。這通常是非常有用的內回調,如事件處理程序...
因爲jQuery會爲每個$
調用一個新的包裝對象,並在Javascript中的所有對象是不同的,即使他們有相同的屬性/方法。
另一方面,document.body == document.body
將評估爲true
。
你是第一個解釋包裝器對象創建。 +1 – 2010-12-01 00:35:30
是的,出於同樣的原因給了我的投票。 – BoltClock 2010-12-01 05:53:14
- 1. 爲什麼jQuery(「html body div table」)返回null,而jQuery(「html body div」)不是?
- 2. document.body返回iframe body
- 3. executor.invokeAll()lambda body不返回
- 4. Retrofit 2返回null body
- 5. Gmail body返回null with document.getElementById(「」)
- 6. Restangular POST body body
- 7. 實現右鍵單擊:<BODY oncontextmenu =「返回false」>
- 8. 爲什麼string.contains()返回false?
- 9. jquery返回false - 爲什麼?
- 10. 爲什麼setFieldProperty返回false?
- 11. Properties.containsKey返回false,爲什麼?
- 12. 爲什麼File.Exists返回false?
- 13. 爲什麼System.Type.IsPublic返回false?
- 14. 爲什麼!document.body返回False?
- 15. 爲什麼strtotime返回false?
- 16. ABGroupAddMember返回false。爲什麼?
- 17. 爲什麼QSortFilterProxyModel.setData()返回false?
- 18. 爲什麼getimagesize()返回false?
- 19. 爲什麼$ .contains()返回false?
- 20. 爲什麼transaction.wasCommitted()返回false?
- 21. 爲什麼os.path.isfile返回False?
- 22. 爲什麼List.contain返回false
- 23. 爲什麼IsUTF8String返回false?
- 24. 爲什麼is_array()返回false?
- 25. 爲什麼$ .isFunction返回false?
- 26. 爲什麼String.Equals返回false?
- 27. * html body是什麼意思?
- 28. body-parser有什麼用?
- 29. 爲什麼使用html> body?
- 30. 爲什麼body class壓倒footer html
查看其他答案爲什麼你需要$ .is()的實際解釋。 – pettazz 2010-11-30 20:03:43