#javascript #jquery
Когда перебираю массив из инпутов, то метод val() jquery выдает ошибку, а вот свойство value javascript выводит значение атрибута value. В чем тут подвох?
Ответы
Ответ 1
Разница между методом val и свойством value довольно большая: Свойство находится непосредственно в элементе, и получает значение как есть. Если посмотреть реализацию метода val и опустить проверку на то, передали в метод параметр или нет и сразу перейти к получению значения можно отметить, что сначала проверяется наличие хуков: if ( hooks && "get" in hooks && ( ret = hooks.get( elem, "value" ) ) !== undefined ) { return ret; } И если они есть, то выполняется соответствующая функция. Если хуков нет, то получается значение, с помощью свойства value, и если полученное значение является строкой - перед возвратом из функции из строки будут удалены символы \r с помощью замены по регулярному выражению rreturn Ошибку при вызове метода val можно получить, если пытаться вызвать этот метод у нативного html элемента, а не у объекта jQuery. Для решения, достаточно обернуть имеющийся элемент, в объект: $(element).val();Ответ 2
.val() - метод, применяемый к объекту JQ. Использование объекта jQuery начинается с вызова одноименной функции - $("селектор")..value - применяется к элементу DOM. Работа с элементом DOM начинается с document.getElementByТипСелектора("егоНазвание"). Для наглядности примера - ссылка, нужно открыть консоль в браузере! И кликнуть единственную кнопку.
Комментариев нет:
Отправить комментарий