Каков наилучший способ получить базовый элемент DOM по идентификатору в jQuery? - PullRequest
0 голосов
/ 13 июня 2009

Это звучит как очень простой вопрос. Допустим, у меня есть следующий элемент формы

<select id="mySelect"> 

...

Используя jQuery, скажем, я хочу получить его по идентификатору, чтобы я мог напрямую получить доступ к одному из его атрибутов, например selectedIndex.

Я не думаю Я могу использовать

var selectedIndex = $("#mySelect").selectedIndex;

потому что селектор # возвращает массив элементов. Если я хочу получить доступ к элементу select DOM, мне нужно позвонить

var selectedIndex = $("#mySelect").get(0).selectedIndex;

Это правильно? Существует ли селектор, который позволит мне напрямую перейти к элементу DOM без необходимости делать «дополнительный вызов» для получения (0)?

Я спрашиваю, потому что я иду из Прототипа, где я могу просто сказать:

var selectedIndex = $('mySelect').selectedIndex;

Ответы [ 3 ]

3 голосов
/ 13 июня 2009

Существуют способы jQuery для получения значения <select>, которые не требуют доступа к фактическому элементу DOM. В частности, вы можете просто сделать это, чтобы получить значение текущей выбранной опции:

$('#mySelect').val();

Иногда, однако, вы хотите получить доступ к определенному атрибуту DOM по любой причине.

Хотя введенный вами синтаксис .get(0) правильный, он также возможен без вызова функции:

$("#mySelect")[0].selectedIndex;

Коллекция jQuery ведет себя как массивоподобный объект и через него выставляет фактические элементы DOM.

1 голос
/ 13 июня 2009

$("#mySelect").val() добьется цели.

0 голосов
/ 13 июня 2009
$("#mySelect option:selected").val()
...