@kgbplus

Откуда разница между .value и .val()?

Почему вот в этой конструкции:
$("#myform input:text").each(function(index, formField) {
    data[formField.name] = formField.value;
})


свойство .value работает, а вот здесь:

$("#myform input[name=abc]").value;

не работает, нужно использовать метод val()?

На мой взгляд в первом случае я перебираю в цикле поля формы, а во втором случае обращаюсь к конкретному полю, т.е. объекты одинаковы. Откуда между ними разница?
  • Вопрос задан
  • 765 просмотров
Решения вопроса 1
Bobert88
@Bobert88
Vice President of Javascript, very important guy.
В первом случае это html element, во втором объект jquery.

Чтобы использовать val() в первом случае, нужно обернуть элемент в обертку jquery:
$("#myform input:text").each(function(index, formField) {
    data[formField.name] = $(formField).val();
})

или же во втором случае вытащить html element из jquery объекта:

$("#myform input[name=abc]")[0].value;

На мой взгляд, если вы работаете с jQuery, то ради постоянства кода, стоит использовать .val() по возможности везде.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы