Javascript 如何将数值传递给jQuery';css()?

Javascript 如何将数值传递给jQuery';css()?,javascript,jquery,string,type-conversion,concatenation,Javascript,Jquery,String,Type Conversion,Concatenation,我刚刚开始使用jQuery(实际上是Javascript),我觉得缺少严格的类型开始困扰我 我需要将诸如'123px'或'#123'之类的值传递给jQuery的.css(),如果我动态生成字符串,它将不起作用 因此字符串连接是通过+完成的 '123'+'px'有效。 123+'px'没有。 123.toString()+'px'也不能 为什么??在别处传递字符串+数字连接似乎有效。这与jQuery有关吗? 那么,如何从数值和.css()的文本后缀/前缀创建字符串呢 示例:一些CSS属性,如wid

我刚刚开始使用jQuery(实际上是Javascript),我觉得缺少严格的类型开始困扰我

我需要将诸如
'123px'
'#123'
之类的值传递给jQuery的
.css()
,如果我动态生成字符串,它将不起作用

因此字符串连接是通过
+
完成的


'123'+'px'
有效。
123+'px'
没有。
123.toString()+'px'
也不能

为什么??在别处传递字符串+数字连接似乎有效。这与jQuery有关吗?
那么,如何从数值和
.css()
的文本后缀/前缀创建字符串呢


示例:

一些CSS属性,如
width()
height()
,具有专用的jQuery方法,这些方法采用数值参数并转换为
px


对于其他人,您应该尝试连接字符串以避免意外结果。例如,在jsbin中,您试图将
'#'
080
连接起来,这实际上是
80
和一个不重要的零,因此您最终得到的
'#80'
不是有效的十六进制颜色代码。

'123'+'px'

123+'px'
也应该工作,但是像=>
'+123+'px'

123.toString()+'px'
应该是=>
123..toString()+'px'

最后一个有点棘手。ECMA-/Javascripts要求在这个位置使用完全限定的小数位数
123.0.toString()
快捷方式几乎相同

#80
在Javascript中永远不是一个数值


“#”+080
不起作用,因为
080
是一个八进制值。Firebug抛出:
08不是合法的ECMA-262八进制常量

实际上,您需要使用
123..toString()
,因为Javascript将
123.toString()
解释为浮点值。您需要做的第一件事是使用
123.
创建一个等于
123.0
的浮点,然后将其转换为字符串。

+1,因为我永远猜不到
123..toString()
。但是第二个不适用于jQuery。我也试过
'.concat(123,'px')
但什么都没有。在这个例子中,
“#”+080
不起作用,而
“#”+“080”
起作用。@Camilomating:这是因为前面的零。这是一个八进制值。Firebug抛出这样一个问题:
08不是合法的ECMA-262八进制常数
@Camilo-我只是想知道在什么情况下你会得到
080
。如果它是一个数字,那么它应该是
80
&@Riegel:Dumb me。。。180行。应该猜到的。在示例中使用了该选项,但实际问题是宽度和高度,并按照BoltClock的答案解决。谢谢,谢谢<代码>宽度
和高度是我要找的。另外,我忘记了示例中
080
80
。只是等待超时接受。顺便说一下,我仍然不理解将宽度和高度与串联值一起使用的限制(因为它们在其他情况下工作)。奇怪的