Задать вопрос
@kgbplus

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

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


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

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

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

На мой взгляд в первом случае я перебираю в цикле поля формы, а во втором случае обращаюсь к конкретному полю, т.е. объекты одинаковы. Откуда между ними разница?
  • Вопрос задан
  • 826 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 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() по возможности везде.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽