Créer un objet jQuery collection de séparer les objets jQuery
$.fn.sortByDepth = function() {
var ar = [];
var result = $([]);
$(this).each(function() {
ar.push({length: $(this).parents().length, elmt: $(this)});
});
ar.sort(function(a,b) {
return b.length - a.length;
});
for (var i=0; i<ar.length; i++) {
result.add(ar[i].elmt);
};
alert(result.length);
return result;
};
Dans cette fonction, j'essaie de créer un jQuery collection de séparer l'objet jQuery. Comment puis-je le faire ?
Le code ci-dessous ne fonctionne pas:
result.add(ar[i].elmt);
Le jsfiddle: http://jsfiddle.net/hze3M/14/
OriginalL'auteur alexl | 2011-04-22
Vous devez vous connecter pour publier un commentaire.
.ajouter()
renvoie un nouvel objet jQuery. Modifier cette ligne::
Cela ne fonctionne toujours pas, bien que
Si vous n'en utiliser qu'un à la vanille JS tableau,
push()
des éléments triés, puis$()
l'ensemble de la chose.Autres nettoyage du code:
http://jsfiddle.net/mattball/AqUQH/.
oui, il était plus rapide, mais le code ne fonctionne toujours pas (voir mon dernier edit).
arg, donc tout le code, c'est inutile si la méthode add réorganiser tous les objets ...
Eh bien, j'ai juste édité ma réponse à résoudre ce problème aussi 🙂
nevermind n'ai pas vu la dernière mise à jour. Je n'ai pas connu, vous pouvez créer un jquery collection directement depuis le tableau du bien de voir que.
OriginalL'auteur Matt Ball
.ajouter
renvoie un nouvel objet, et ne pas modifier l'ancien.Essayez de changer:
:
Aussi,
$([])
est inutile, vous pouvez le fairevar result = $();
Vous êtes les bienvenus 🙂
OriginalL'auteur Rocket Hazmat