Wie kann ich feststellen, ob zwei jQuery-Objekte gleich sind? Ich würde gerne in der Lage sein, ein Array nach einem bestimmten jQuery-Objekt zu durchsuchen.jQuery Objektgleichheit
alert($("#deviceTypeRoot")[0] == $("#deviceTypeRoot")[0]); //True
alert($("#deviceTypeRoot")[0] === $("#deviceTypeRoot")[0]);//True
weil $("#deviceTypeRoot")
auch eine Reihe von Objekten zurückgibt, die der Wähler gewählt hat:
$.inArray(jqobj, my_array);//-1
alert($("#deviceTypeRoot") == $("#deviceTypeRoot"));//False
alert($("#deviceTypeRoot") === $("#deviceTypeRoot"));//False
Diese Lösung vereinfacht sich zu der von [thepphdeveloper] (http://stackoverflow.com/questions/3176962/jquery-object-equality/3176971#3176971) gegebenen, wenn es nur ein einzelnes Element gibt . Ein anderer Sinn, in dem jQuery-Objekte als gleich angesehen werden können, ist, ob sie denselben Selektor und denselben Kontext haben. Das ist leicht genug zu testen: 'A.selector === B.selector && A.context === B.context'. Oft wird der Kontext immer gleich sein, so dass wir nur den Selektor berücksichtigen müssen. – Casebash
@Casebash - true, aber bedenken Sie, dass mehrere Selektoren mit der gleichen Ergebnismenge enden könnten, zB: '$ (': first')' und '$ ('*: first')' – nickf
[Kleinere Lösung - verwenden Sie $ (a) .is (b) '] (http://stackoverflow.com/q/2448362/9859). – rampion