Prawdopodobnie otrzymujesz głosy przeciw, ponieważ odpowiedzi na Twoje pytania można uzyskać w ciągu kilku sekund w Google lub czytając dokumentację JQuery.
zombat
53
+1 do migdałków dla odważnych użytkowników SO. Jego pytanie jest jak najbardziej trafne, niezależnie od tego, jak łatwe / trudne było do rozwiązania. Większy ruch do SO dla przyszłych wyszukiwań na ten temat.
Mr. Smith
7
dajcie spokój - jQuery voodoo nie jest wcale takie łatwe do nauczenia dla starszego faceta, takiego jak ja, programisty serwerowego, którym jestem przez ostatnie 20 lat - bądźcie mili i nie przejmujcie się nowicjuszami jQuery! :-)
marc_s
1
@Boekwurm Ben - może i jest odważny, ale nie można też winić użytkowników SO. Ludzie generalnie lubią widzieć niewielki wysiłek osoby zadającej pytanie.
zombat
12
O ile pamiętam, była to pierwsza rzecz, której nie zrozumiałem o jQuery. Myślę, że to ważne pytanie, czy prawdę powiedziawszy, a ocenianie było trudne. stackoverflow.com/questions/75296/…
... ponieważ pierwsza zwraca obiekt jQuery, a nie obiekt DOM.
Aby pobrać obiekt (y) DOM z jQuery, użyj:
$('#selectlist').get();//get all DOM objects in the jQuery collection
$('#selectlist').get(0);//get the DOM object in the jQuery collection at index 0
$('#selectlist')[0];//get the DOM objects in the jQuery collection at index 0
być może trochę stycznie, ale to byłaby świetna informacja: czy istnieje sposób na pobranie obiektu DOM z jQuery? edycja : odpowiedział na moje własne pytanie w edycji.
Clayton Hughes
4
Przez godzinę uderzałem głową o ścianę, aż zdałem sobie sprawę, że metody getElementById () nie można zastąpić znakiem $ (). Dziękuję bardzo za tę odpowiedź!
knite
3
@knite - Tak. Chciałbym, żeby ktoś mi to wyjaśnił, kiedy pierwszy raz użyłem jQuery.
James Wiseman,
1
dzięki za późniejszą część wyjaśnienia pobierania obiektów DOM w jquery :).
kailash19
+1 Oldie but a goodie. Próbowałem dowiedzieć się, dlaczego Mapy Google zaakceptowały obiekt DOM, ale nie zaakceptowały mojego obiektu jQuery. Szybkie wyszukiwanie w Google zaprowadziło mnie tutaj, a nie do dokumentów jQuery.
TonyG
9
Chaos jest na miejscu, chociaż w przypadku tego rodzaju pytań powinieneś sprawdzić dokumentację Jquery online - jest ona naprawdę dość obszerna. Funkcja, której szukasz, nazywa się „selektory jquery”
Generalnie tak $('#ID').val()- .afterwards może zrobić wiele rzeczy na elemencie, który jest zwracany z selektora. Możesz także wybrać wszystkie elementy z określonej klasy i zrobić coś z każdym z nich. Zapoznaj się z dokumentacją, aby uzyskać dobre przykłady.
Dla tych, którzy zastanawiają się, czy selektory id jQuery są wolniejsze niż document.getElementById, odpowiedź brzmi: tak, ale nie z powodu uprzedzenia, że przeszukuje cały DOM w poszukiwaniu elementu. jQuery faktycznie używa metody natywnej. Dzieje się tak dlatego, że jQuery używa najpierw wyrażenia regularnego, aby oddzielić ciągi w selektorze do sprawdzenia, i oczywiście uruchamia konstruktor:
rquickExpr =/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/
Podczas gdy użycie elementu DOM jako argumentu wraca natychmiast z „this”.
W niektórych przypadkach nie pamiętam dlaczego, ale $('#selectlist').val()nie zawsze zwracam prawidłową wartość przedmiotu, więc $('#selectlist option:selected').val()zamiast tego używam .
Może mógłbyś zamieścić linki, które to potwierdzają. Byłbym jednak zaskoczony. Byłby to podstawowy błąd w jQuery. Czy to możliwe, że używasz błędnej wersji biblioteki?
James Wiseman,
To mógł być James, myślę, że mógł to być w 1.3.0, nie wydaje się, aby był odtworzony w 1.3.2, ale mógł też być w IE6 lub 7, których już nie instalowałem, zobaczę czy mogę znaleźć pierwotną przyczynę i zgłosić ją tutaj.
Odpowiedzi:
źródło
Słowo „ekwiwalent” to tutaj słowo
Podczas...
...jest równa...
... warto zauważyć, że ...
... chociaż „odpowiednik” to nie to samo co ...
... ponieważ pierwsza zwraca obiekt jQuery, a nie obiekt DOM.
Aby pobrać obiekt (y) DOM z jQuery, użyj:
źródło
Chaos jest na miejscu, chociaż w przypadku tego rodzaju pytań powinieneś sprawdzić dokumentację Jquery online - jest ona naprawdę dość obszerna. Funkcja, której szukasz, nazywa się „selektory jquery”
Generalnie tak
$('#ID').val()
- .afterwards może zrobić wiele rzeczy na elemencie, który jest zwracany z selektora. Możesz także wybrać wszystkie elementy z określonej klasy i zrobić coś z każdym z nich. Zapoznaj się z dokumentacją, aby uzyskać dobre przykłady.źródło
Można to zrobić na trzy różne sposoby, chociaż wszystkie są prawie takie same
Sposób JavaScript
Sposób JQuery
źródło
Dla tych, którzy zastanawiają się, czy selektory id jQuery są wolniejsze niż document.getElementById, odpowiedź brzmi: tak, ale nie z powodu uprzedzenia, że przeszukuje cały DOM w poszukiwaniu elementu. jQuery faktycznie używa metody natywnej. Dzieje się tak dlatego, że jQuery używa najpierw wyrażenia regularnego, aby oddzielić ciągi w selektorze do sprawdzenia, i oczywiście uruchamia konstruktor:
Podczas gdy użycie elementu DOM jako argumentu wraca natychmiast z „this”.
Więc to:
Zawsze będzie szybszy niż to:
źródło
W niektórych przypadkach nie pamiętam dlaczego, ale
$('#selectlist').val()
nie zawsze zwracam prawidłową wartość przedmiotu, więc$('#selectlist option:selected').val()
zamiast tego używam .źródło