Les objects jQuery du même élément ne sont pas égaux?

Cela doit être quelque chose que je néglige, mais veuillez regarder la page suivante et JavaScript pour me dire pourquoi, pour tout ce qui est sacré, jQuery ne reviendra pas vrai?

HTML: http://alcatel.scottbuckingham.com/reporting/test.html

hello1

JS: http://alcatel.scottbuckingham.com/reporting/_scripts/collapse.js

 ;(function($, window, document, undefined) { var t = $('.test'); var s = $('.test'); console.log(t); console.log(s); if (t === s) { console.log('yes'); } })(jQuery, window, document); 

J’ai littéralement passé des heures à essayer de régler le problème et à le réduire à ceci, presque 1 === 1 déclaration qui ne fonctionnera pas.

Toute aide est grandement appréciée!

Essayez ceci – Démo de travail -> http://jsfiddle.net/mohammadAdil/tHjgN/

  if(t.is(s)) { console.log('yes'); } 

http://api.jquery.com/is/

Ou avec ===

 if (t.get(0) === s.get(0)) { //<--Compare DOM elements instead of jquery object's console.log('again yes'); } 

Démo -> http://jsfiddle.net/mohammadAdil/tHjgN/1/

Vous pouvez utiliser la méthode jQuery is .

Description: Vérifiez le jeu d’éléments correspondant actuellement par rapport à un object sélecteur, élément ou jQuery et renvoyez la valeur true si au moins un de ces éléments correspond aux arguments donnés.

 if (t.is(s)) { console.log('yes'); } 

Exemple de violon: http://jsfiddle.net/IrvinDominin/q86Sh/

Vous pouvez faire ceci, une comparaison des noeuds HTML. Si vous voulez comparer des objects HTML, c’est la bonne façon de le faire.

 if (t[0] === s[0]) { console.log('yes'); } 

Cela pourrait vous aider:

 var test = document.getElementById('test') //returns a HTML DOM Object var test = $('#test') //returns a jQuery Object var test = $('#test')[0] //returns a HTML DOM Object 

Donc (comme les feux de la rampe vous ont dit) utilisez ceci:

 if (t[0] === s[0]) { console.log('yes'); } 

En outre, il est bon d’utiliser

 $(document).ready(function(){ }); 

autour de votre code.

Votre script se

hello1

dans mais l’élément

hello1

dans .

Tout d’abord, vous devez utiliser $(document).ready() pour vous assurer que le contenu est chargé. Puis vérifiez si elles sont égales avec .is() .

 $(document).ready(function() { var t = $('.test'); var s = $('.test'); console.log(t); console.log(s); if (t.is(s)) { console.log('yes'); } }); 

Comparez les exemples avec et sans la fonction .ready() .