У 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()- далі. Ви можете зробити ряд речей на елементі, який повертається з селектора. Ви також можете вибрати всі елементи певного класу і зробити щось із них. Ознайомтеся з документацією на кілька хороших прикладів.
Це можна зробити трьома різними способами, хоча всі вони майже однакові
Javascript спосіб
document.getElementById('test').value
Jquery шлях
$("#test").val()
$("#test")[0].value
$("#test").get(0).value
Для тих, хто цікавиться, чи вибіркові jQuery id повільніше, ніж document.getElementById, відповідь "так", але не через попереднє уявлення, яке він шукає через весь DOM, шукаючи елемент. jQuery насправді використовує нативний метод. Це насправді тому, що jQuery спочатку використовує регулярний вираз, щоб виділити рядки в селекторі, щоб перевірити, і звичайно запустити конструктор:
rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/
Тоді як використання елемента DOM в якості аргументу повертається одразу з "this".
Отже це:
$(document.getElementById('blah')).doSomething();
Завжди буде швидше, ніж це:
$('#blah').doSomething();
У деяких випадках, які я не можу пригадати, чому, але $('#selectlist').val()не завжди повертає правильне значення елемента, тому я використовую $('#selectlist option:selected').val()натомість.