Разница между val.length и val(). Длина в jQuery?
В чем разница между $("#id").val.length
и $("#id").val().length
?
Когда я пишу $("#id").val.length
, тогда вывод 1
и $("#id").val().length
, тогда выход представляет собой длину написанных символов.
Какое объяснение?
Ответы
Ответ 1
$("#id").val
возвращает определение функции val
и length
функции - количество параметров, ожидаемых функцией, поскольку val
принимает один параметр ( setter, чтобы установить значение), длина равна 1, тогда как val()
вызовет функцию и получит возвращаемое значение, а length
- вернет количество символов в значении.
Правильное использование $(selector).val().length
Я также рекомендую использовать VanillaJS trim или jQuery $. trim на val()
перед тем, как проверить length
на удаление ведущих и конечных пробелов.
Ответ 2
Посмотрим на код:
Случай 1:
$("#id").val.length
Здесь .val возвращает определение метода для .val()
. и .length вместе с ним возвращает число методов максимального аргумента (например, 2 для .toggleClass()
)
Случай 2:
$("#id").val().length
Здесь .val()
возвращает результат оценки метода, т.е. значение объекта DOM в формате строки, а .length возвращает возвращаемое значение строки длины.
Правильный способ:
Случай 2 - это правильный способ использования .val()
вместе с длиной, поскольку он возвращает длину связанного с ним элемента.
Ответ 3
С $("#id").val
вы получите функцию (исходный код) и с помощью $("#id").val()
эта функция будет вызвана и выполнена.