czytałem Learning jQuery 1.3 (Jonathan chaffer i Karl Swedberg) i podczas sortowania tabeli, używali .get()
przed wywołaniem .sort()
i powiedziałMetody JavaScript, które nie mogą być wywołane z obiektów jquery?
musimy przekształcić jQuery obiektów w tablicy węzłów DOM. Mimo że obiekty jQuery działają pod wieloma względami jak tablice, nie mają one żadnych dostępnych metod macierzy, takich jak .sort().
Kod:
$("#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); });
});
Więc starałem się to zrobić bez użycia .get()
, ale niespodzianka pracował nawet bez .get()
z najnowszej jQuery, ale nie działa z 1.3
tak wykonane niektóre skrzypce, aby je wyczyścić:
**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
więc oczywiście wcześniej obiekty jQuery nie używane mieć .sort()
funkcję samo jak tablice javascript? Ale teraz mają ..
Więc moje pytanie brzmi, jakie są funkcje obiektów jQuery nie obsługuje jeszcze, więc możemy pamiętać o konwersji na tablice JavaScript, przed użyciem?
I kolejny powód nie używam jQuery. –
Aby zaadresować ostatni punkt: Nie, to nie jest obiekt jQuery. Całość jest obiektem jQuery, który zawiera elementy DOM, więc 'a' i' b' (będące pojedynczymi elementami wewnątrz obiektu) są elementami DOM. –
Nie powinieneś polegać na nieudokumentowanych funkcjach dowolnej biblioteki - mogą one ulec zmianie w każdej chwili.W tym konkretnym przypadku, po prostu idź dalej i zdobądź prawdziwą tablicę elementów DOM, zanim wykonasz operacje tablicowe. –