Вы, вероятно, получаете отрицательные голоса, потому что на ваши вопросы можно ответить всего за несколько секунд в Google или прочитав документацию JQuery.
zombat
53
+1 к миндалинам за храбрых пользователей SO. Его вопрос совершенно верен, независимо от того, насколько легко / сложно его было решить. Больше трафика в SO для будущих поисков по этой теме.
Мистер Смит,
7
Да ладно, ребята - jQuery voodoo не так уж и легко изучить для такого старого парня, как я, серверного разработчика, которым я занимаюсь последние 20 лет или около того - будьте любезны и не пренебрегайте нами, новичками в jQuery! :-)
marc_s
1
@Boekwurm Ben - он может быть храбрым, но вы также не можете винить пользователей SO. Обычно людям нравится, когда человек, задающий вопрос, прилагает немного усилий.
zombat
12
Насколько я помню, это было первое, чего я не понял о jQuery. Я думаю, что это правильный вопрос, если говорить правду, а снижение цен было резким. stackoverflow.com/questions/75296/…
... хотя "эквивалент" - это не то же самое, что ...
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
возможно, здесь немного касательно, но это была бы отличная информация: есть ли способ получить объект DOM из jQuery? изменить : ответил на мой собственный вопрос в редактировании.
Clayton Hughes
4
Я бился головой о стену в течение часа, пока не понял, что getElementById () нельзя заменить на $ (). Большое спасибо за этот ответ!
knite
3
@knite - Да. Хотел бы я, чтобы кто-нибудь объяснил мне, что я впервые использовал jQuery.
Джеймс Уайзман
1
спасибо за более позднее объяснение получения объектов DOM в jquery :).
kailash19
+1 Олди, но вкусняшка. Я пытался выяснить, почему Карты Google приняли объект DOM, но не приняли мой объект jQuery. Быстрый поиск в Google привел меня сюда, а не к документации jQuery.
TonyG
9
Хаос подходит, хотя для ответов на подобные вопросы вам следует проверить документацию JQuery в Интернете - она действительно довольно обширна. Функция, которая вам нужна, называется "селекторами jquery".
Как правило, вы это делаете $('#ID').val()- .afterwards может делать ряд вещей с элементом, который возвращается из селектора. Вы также можете выбрать все элементы в определенном классе и сделать что-нибудь с каждым из них. Ознакомьтесь с документацией, чтобы найти хорошие примеры.
Для тех, кто задается вопросом, работают ли селекторы id jQuery медленнее, чем document.getElementById, ответ будет положительным, но не из-за предубеждения, что он просматривает всю DOM в поисках элемента. jQuery действительно использует собственный метод. На самом деле это потому, что jQuery сначала использует регулярное выражение, чтобы выделить строки в селекторе для проверки и, конечно же, запустить конструктор:
rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/
В то время как использование элемента DOM в качестве аргумента немедленно возвращается с помощью this.
В некоторых случаях я не могу вспомнить, почему, но $('#selectlist').val()не всегда возвращаю правильное значение элемента, поэтому $('#selectlist option:selected').val()вместо этого использую .
Возможно, вы могли бы опубликовать несколько ссылок, подтверждающих это. Однако я был бы удивлен. Это было бы фундаментальной ошибкой в jQuery. Возможно, вы используете версию библиотеки с ошибками?
Джеймс Уайзман,
Возможно, это был Джеймс, я думаю, это могло быть в 1.3.0, похоже, не может быть воспроизведено в 1.3.2, но это также могло быть в IE6 или 7, которые я больше не устанавливал, я посмотрю если я смогу выяснить первопричину и сообщить об этом здесь.
Ответы:
$('#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
источник
Хаос подходит, хотя для ответов на подобные вопросы вам следует проверить документацию 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()
вместо этого использую .источник