2015-10-23 16 views
24

Jaka jest różnica między $("#id").val.length i $("#id").val().length?Różnica między wartością val.length a val(). Length w jQuery?

Kiedy piszę $("#id").val.length, wtedy dane wyjściowe to 1 i $("#id").val().length, a wynikiem jest długość pisanych znaków.

Jakie jest wytłumaczenie?

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length: To tylko '($ .fn.val) .length' – Bergi

+0

Proszę nie używać Tag [tag: jquery-validate], gdy pytanie nie ma absolutnie nic wspólnego z wtyczką jQuery Validate. Edytowane. – Sparky

Odpowiedz

51

$("#id").val zwraca definicja funkcji val i length of a function is the number of parameters the function is expecting jako val pobiera jeden parametr (setter, aby ustawić wartość) długość wynosi 1, natomiast val() wywoła funkcję i uzyskać zwracanej wartości i length na powróci liczba znaków w wartości.

Prawidłowe stosowanie jest $(selector).val().length

będę też zaleca się stosowanie przed VanillaJS na trim lub jQuery $.trimval() na sprawdzenie length usunąć początkowe i końcowe spacje.

+12

'długość funkcji to liczba parametrów, których oczekuje funkcja" Bardzo ładny! Nie wiedział tego. (i tak, przetestowałem to). Spróbuj '(test funkcji (jeden, dwa) {}). Length' – AmmarCSE

1

Z $("#id").val otrzymasz funkcję (kod źródłowy) i z $("#id").val() ta funkcja zostanie wywołana i wykonana.

8

Pozwól nam spojrzeć zarówno kodu:

Przypadek 1:

$("#id").val.length 

Tutaj .val powrotu definicji metoda .val(). .length i wraz z nią powraca maksymalna liczba metod argumentów przyjmuje (na przykład 2 do .toggleClass())

Przypadek 2:

$("#id").val().length 

tutaj .val() zawraca Sposób oceny wynik czyli wartości obiektu DOM? g format i .length zwraca zwróconą wartość długości łańcucha.

Dokładny sposób:

Obudowa 2 jest poprawny sposób wykorzystania .val() oraz długości, jak to zwraca długość wartości elementów z nią związanych.

+1

' Ponieważ liczba metod wynosi 1, .length wraz z nim zwraca 1. "to nie jest poprawne. Liczba * liczby parametrów * metody wynosi "1". – Agop

+0

@Agop: tak. zaktualizował odpowiedź. –

Powiązane problemy