W jQuery, co jest odpowiednikiem document.getElementById("selectlist").value?
Próbuję uzyskać wartość elementu listy wyboru.
Dzięki.
W jQuery, co jest odpowiednikiem document.getElementById("selectlist").value?
Próbuję uzyskać wartość elementu listy wyboru.
Dzięki.
Odpowiedzi:
Słowo „ekwiwalent” to tutaj słowo
Podczas...
$('#selectlist').val();
...jest równa...
document.getElementById("selectlist").value
... warto zauważyć, że ...
$('#selectlist')
... chociaż „odpowiednik” to nie to samo co ...
document.getElementById("selectlist")
... 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
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.
Można to zrobić na trzy różne sposoby, chociaż wszystkie są prawie takie same
Sposób JavaScript
document.getElementById('test').value
Sposób JQuery
$("#test").val()
$("#test")[0].value
$("#test").get(0).value
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”.
Więc to:
$(document.getElementById('blah')).doSomething();
Zawsze będzie szybszy niż to:
$('#blah').doSomething();
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 .