var a=$('#start > div:last-child');
var b=$('#start > div.live')[0];
alert(a==b)
alert(a==$(b))
C'est toujours faux. Comment comparer deux éléments en jQuery ?
merci
var a=$('#start > div:last-child');
var b=$('#start > div.live')[0];
alert(a==b)
alert(a==$(b))
C'est toujours faux. Comment comparer deux éléments en jQuery ?
merci
Chaque fois que vous appelez la fonction jQuery(), un nouvel objet est créé et renvoyé. Ainsi, même les contrôles d'égalité sur les mêmes sélecteurs échoueront.
<div id="a">test</div>
$('#a') == $('#a') // false
L'objet jQuery résultant contient un tableau d'éléments correspondants, qui sont essentiellement des objets DOM natifs tels que HTMLDivElement
qui font toujours référence au même objet, vous devez donc vérifier leur égalité en utilisant l'index du tableau comme Darin l'a suggéré.
$('#a')[0] == $('#a')[0] // true
Exemple aléatoire AirCoded de test de "l'égalité des ensembles" en jQuery :
$.fn.isEqual = function($otherSet) {
if (this === $otherSet) return true;
if (this.length != $otherSet.length) return false;
var ret = true;
this.each(function(idx) {
if (this !== $otherSet[idx]) {
ret = false; return false;
}
});
return ret;
};
var a=$('#start > div:last-child');
var b=$('#start > div.live')[0];
console.log($(b).isEqual(a));
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.