В чем разница между jQuery.вал и.буква attr('значение')?
Я думаю, что название это достаточно ясно
3 ответа:
.val()
работает на всех элементах типа ввода полезным способом, в том числе<select>
...даже в случаях<select multiple>
, флажки и переключатели (в которых.val()
получает или задает элемент массив из выбранных значений не только строка).так что в основном они служат разным целям, хотя
.attr('value')
ведет себя так же, в некоторых ситуациях, таких как текстовые поля. Предпочтительный метод -.val()
to получить последовательное поведение везде.
просто для удовольствия, вот менее известный пример для флажков, который делает
.val()
handy:<input name="mytest" type="checkbox" value="1"> <input name="mytest" type="checkbox" value="2"> <input name="mytest" type="checkbox" value="3"> <input name="mytest" type="checkbox" value="4">
вы можете сделать это:
$("input[name='mytest']").val([1, 2, 3]);
....который будет проверять первые 3 коробки. вы можете попробовать здесь.
также .attr ('value') возвращает значение, которое было до редактирования поля ввода. И.функция val() возвращает текущее значение.
чтобы добавить к ответу actis...
также .attr ('value') возвращает значение, которое было перед редактированием ввода поле. И.функция val() возвращает текущее значение.
при работе с полем ввода текста, сеттер методы .attr () and .функция val() работают по-разному.
.val('newval')
установит значение, которое пользователь видит на странице, и обновит значение, возвращенное последующим .вызов метода val (). Он не устанавливает значение атрибута элемент.
OTOH
.attr('value','newval')
устанавливает значение атрибута элемента. Если пользователь не набрал и .val (newval) не был вызван, а затем это также визуально обновит элемент управления и обновит возвращаемое значение .вал.)(
вы можете исследовать дальше со следующим jsfiddle:
https://jsfiddle.net/jasonnet/vamLww2k/
удачи.