Frage Unterschied zwischen val.length und val (). Length in jQuery?


Was ist der Unterschied zwischen? $("#id").val.length und $("#id").val().length?

Wenn ich schreibe $("#id").val.length dann ist die Ausgabe 1 und $("#id").val().length dann ist die Ausgabe die Länge der geschriebenen Zeichen.

Was ist die Erklärung?


24
2017-10-23 11:18


Ursprung


Antworten:


$("#id").val gibt die Funktionsdefinition von zurück val und length einer Funktion ist die Anzahl der Parameter, die die Funktion erwartet als die val Nimmt einen Parameter (Setter um den Wert zu setzen) ist die Länge 1, während val() ruft die Funktion auf und erhält den zurückgegebenen Wert und length Darauf wird die Anzahl der Zeichen im Wert zurückgegeben.

Die richtige Verwendung ist $(selector).val().length

Ich werde auch empfehlen, VanillaJS's zu verwenden trimmen oder jQuery's $ .trim auf val() vor der Überprüfung length um führende und nachfolgende Leerzeichen zu entfernen.


51
2017-10-23 11:20



Sehen wir uns den Code an:

Fall 1:

$("#id").val.length

Hier gibt .val die Methodendefinition für zurück .val(). und .length zusammen mit ihm gibt die Anzahl der maximalen Argumentmethoden an (zum Beispiel 2 für .toggleClass())

Fall 2:

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

Hier .val() gibt das Ergebnis der Methodenbewertung, d. h. den Wert des DOM-Objekts im Zeichenfolgenformat, zurück, und .length gibt den zurückgegebenen Längenzeichenfolgenwert zurück.

Der richtige Weg: 

Fall 2 ist die richtige Art der Verwendung .val() zusammen mit der Länge, wie sie die Länge des Werts des damit verknüpften Elements zurückgibt.


8
2017-10-23 11:22



Mit $("#id").val Sie erhalten die Funktion (den Quellcode) und mit $("#id").val() Diese Funktion wird aufgerufen und ausgeführt.


1
2017-10-23 11:21