Javascript 如何将数值传递给jQuery';css()?
我刚刚开始使用jQuery(实际上是Javascript),我觉得缺少严格的类型开始困扰我 我需要将诸如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
'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
。只是等待超时接受。顺便说一下,我仍然不理解将宽度和高度与串联值一起使用的限制(因为它们在其他情况下工作)。奇怪的