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