2 Stimmen

Wie kann man numerische Werte an jQuery's .css() übergeben?

Ich bin gerade erst mit jQuery (und Javascript im Allgemeinen tatsächlich), und ich fühle mich der Mangel an strengen Typisierung beginnt, mich zu beißen.

Ich muss Werte übergeben wie '123px' o '#123' zu jQuery's .css() und es funktioniert nicht, wenn ich die Zeichenketten dynamisch generiere.

Die Verkettung von Zeichenketten erfolgt also mit + .

'123' + 'px' funktioniert.
123 + 'px' nicht.
123.toString() + 'px' auch nicht!

Warum? Übergabe String + Zahl Verkettungen anderswo scheint zu funktionieren. Ist dies im Zusammenhang mit jQuery?
Wie kann ich also eine Zeichenfolge aus einem numerischen Wert und einem Textsuffix/-präfix für .css() ?

Ejemplo: http://jsbin.com/ebiro4

3voto

jAndy Punkte 223172

'123' + 'px' Werke

123 + 'px' sollte auch funktionieren, aber machen Sie es wie => '' + 123 + 'px'

123.toString() + 'px' sollte sein => 123..toString() + 'px'

Der letzte Punkt ist etwas knifflig. ECMA-/Javascripts erwartet an dieser Stelle volle qualifizierte Nachkommastellen. 123.0.toString() ist so ziemlich dasselbe wie die .. Abkürzung.

#80 ist in Javascript nie ein numerischer Wert.

'#' + 080 funktioniert nicht, weil 080 ist ein oktaler Wert. Firebug wirft: 08 is not a legal ECMA-262 octal constant .

2voto

BoltClock Punkte 660640

Einige CSS-Eigenschaften, wie width() y height() haben spezielle jQuery-Methoden, die numerische Argumente annehmen und in px .

Bei anderen sollten Sie versuchen, die folgenden Informationen miteinander zu verknüpfen Zeichenketten um unerwartete Ergebnisse zu vermeiden. Ein Beispiel: In Ihrem jsbin versuchen Sie, Folgendes zu verknüpfen '#' y 080 was eigentlich ein 80 mit einer unbedeutenden Null, so dass man am Ende mit '#80' was kein gültiger Hex-Farbcode ist.

1voto

Eigentlich müssen Sie 123..toString() da Javascript interpretiert 123.toString() als Float-Wert. Als Erstes müssen Sie einen Float-Wert mit 123. was gleich ist mit 123.0 und dann in eine Zeichenkette umwandeln.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X