Что эквивалентно в jQuery document.getElementById("selectlist").value?
Я пытаюсь получить значение элемента списка выбора.
Спасибо.
Что эквивалентно в jQuery document.getElementById("selectlist").value?
Я пытаюсь получить значение элемента списка выбора.
Спасибо.
Ответы:
«Эквивалент» - вот слово здесь
Пока...
$('#selectlist').val();
...эквивалентно...
document.getElementById("selectlist").value
... стоит отметить, что ...
$('#selectlist')
... хотя "эквивалент" - это не то же самое, что ...
document.getElementById("selectlist")
... поскольку первый возвращает объект jQuery, а не объект DOM.
Чтобы получить объект (ы) DOM из jQuery, используйте следующее:
$('#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
Хаос подходит, хотя для ответов на подобные вопросы вам следует проверить документацию JQuery в Интернете - она действительно довольно обширна. Функция, которая вам нужна, называется "селекторами jquery".
Как правило, вы это делаете $('#ID').val()- .afterwards может делать ряд вещей с элементом, который возвращается из селектора. Вы также можете выбрать все элементы в определенном классе и сделать что-нибудь с каждым из них. Ознакомьтесь с документацией, чтобы найти хорошие примеры.
Это можно сделать тремя разными способами, хотя все они почти одинаковы.
Javascript способ
document.getElementById('test').value
JQuery способ
$("#test").val()
$("#test")[0].value
$("#test").get(0).value
Для тех, кто задается вопросом, работают ли селекторы id jQuery медленнее, чем document.getElementById, ответ будет положительным, но не из-за предубеждения, что он просматривает всю DOM в поисках элемента. jQuery действительно использует собственный метод. На самом деле это потому, что jQuery сначала использует регулярное выражение, чтобы выделить строки в селекторе для проверки и, конечно же, запустить конструктор:
rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/
В то время как использование элемента DOM в качестве аргумента немедленно возвращается с помощью this.
Итак, это:
$(document.getElementById('blah')).doSomething();
Всегда будет быстрее, чем это:
$('#blah').doSomething();
В некоторых случаях я не могу вспомнить, почему, но $('#selectlist').val()не всегда возвращаю правильное значение элемента, поэтому $('#selectlist option:selected').val()вместо этого использую .