2009-05-29 12 views
2

Quelqu'un peut-il me dire, si j'appelle ex.Lorsque jQuery crée un nouvel objet wrapper pour les éléments?

var obj1 = $('#element_id') 
var obj2 = $('#element_id') 

se obj1 réfèrent au même objet javascript comme obj2 le fait, ou il y aura 2 objets différents, ayant le même élément HTML ils enveloppent?

Et qu'en est-il des sélecteurs complexes, comme ('.my_class, .my-class2'), qui enveloppent la collection d'objets?

Répondre

2

Ce seront des objets différents.

Il est très facile pour vous de vous tester:

var obj1 = $('#test'); 
var obj2 = $('#test'); 
var array = new Array(); 
array[0] = obj1; 
alert(obj1 == array[0]); 
alert(obj1 == obj2); 

La première alerte sera « true ». La seconde sera "fausse".

2

Ils sont différents, c'est pourquoi il est une pratique courante à store your jQuery objects, vous pouvez réduire l'analyse syntaxique de sélection, DOM tranversal etc ...

1

Y a-t-il des possibilités d'obtenir le premier objet ayant seulement sélecteur? cela est nécessaire lorsque je stocke des valeurs dans cet objet et que je souhaite les lire à partir d'une autre partie du code.

Questions connexes