Stavo leggendo Learning jQuery 1.3 (Jonathan Chaffer e Karl Swedberg) e mentre l'ordinamento tavolo, hanno usato .get()
prima di chiamare .sort()
, e ha dettometodi Javascript che non possono essere chiamati da oggetti jQuery?
dobbiamo trasformare jQuery oggetti in array di nodi DOM. Anche se gli oggetti jQuery si comportano come matrici per molti aspetti, non hanno nessuno dei metodi di matrice nativi disponibili, come .sort().
Codice:
$("#sort").click(function() {
var posts = $("#posts_div .post");
posts.sort(function(a, b) {
return ($(a).text()) > ($(b).text());
});
$.each(posts, function(index, post) { $("#posts_div").append(post); });
});
Così ho provato a farlo senza usare .get()
, ma a sorpresa ha funzionato anche senza .get()
con l'ultima jQuery, ma non ha funzionato con 1.3
Così fatta alcuni violini per chiarire
**Not working without .get()
jquery 1.2.6 **
Working with .get()
jquery 1.2.6
Working without .get()
jquery 1.7.2
Working with .get()
jquery 1.7.2
Così, ovviamente, in precedenza gli oggetti jQuery non hanno usato per avere .sort()
funzione stessa di array JavaScript? Ma ora hanno ..
Quindi la mia domanda è quali sono le funzioni che gli oggetti jQuery non supportano ancora, quindi possiamo ricordare di convertire in array Javascript, prima dell'uso ??
E un altro motivo per non uso jQuery. –
Per indirizzare l'ultimo punto: No, non è un oggetto jQuery. La cosa generale è un oggetto jQuery che contiene elementi DOM, quindi 'a' e' b' (essendo singoli elementi all'interno dell'oggetto) sono elementi DOM. –
Non si deve fare affidamento su funzionalità non documentate di alcuna libreria: potrebbero cambiare in qualsiasi momento.In questo caso specifico, basta andare avanti e ottenere una vera matrice di elementi DOM prima di eseguire le operazioni dell'array. –