jQuery .attr () и значение - PullRequest
       1

jQuery .attr () и значение

2 голосов
/ 02 октября 2010

Я хочу использовать следующее .attr ();

selectbox.options[selectbox.selectedIndex].value

печально

selectbox.options[selectbox.selectedIndex].attr("value")

- это не то же самое, и, похоже, полностью уничтожает цель .attr. Мой главный вопрос: как использовать вложенные .attr () s?

Muchos gracias mi amigos

Ответы [ 4 ]

7 голосов
/ 02 октября 2010

Чтобы получить значение любого типа элемента ввода (включая <textarea> и <select>), используйте .val():

var value = $(selectbox).val();

.attr() перевод будет примерно:

$(selectBox).find(":selected").attr("value");

.... но просто используйте .val():)

Основная проблема заключается в том, что .attr() - это метод jQuery.Он относится к объектам jQuery, а не к элементам DOM напрямую, то же самое касается почти всех методов и плагинов jQuery.

1 голос
/ 02 октября 2010

Если вы хотите получить значение выбранного поля, используя текущий код, просто передайте его в объект jquery следующим образом.

$(selectbox.options[selectbox.selectedIndex]).attr('value');
1 голос
/ 02 октября 2010

При использовании attr () вы должны работать с объектом jQuery.Поэтому сначала выберите соответствующее поле выбора, затем вызовите attr () (или val () в этом случае, когда вам нужно значение элемента ввода).

var value = $(selectbox).val();
0 голосов
/ 02 октября 2010

Причина, по которой они не совпадают, заключается в том, что attr('value') получает значение атрибута value непосредственно из исходного HTML-кода, оно не обновляется с DOM , то есть, если значениеvalue изменяется после загрузки страницы либо пользовательским вводом (введя элемент <input>, либо манипулируя JavaScript), эти изменения не будут отражены в возвращаемом значении .attr().

Лучше использовать метод .val() объекта jQuery.


Редактировать Чтобы получить атрибут значения из элемента DOM(то есть не возвращается функцией $() или jQuery()) используйте метод element.getAttribute(), который является нативным, вы можете использовать его следующим образом:

selectbox.options[selectbox.selectedIndex].getAttribute("value");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...