В чем разница между $("#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() эта функция будет вызвана и выполнена.