我刚刚开始使用jQuery (实际上是Javascript ),我觉得缺少严格的输入开始让我头疼。
我需要将像'123px'
或'#123'
这样的值传递给jQuery的.css()
,如果我动态地生成字符串,它就不能工作。
因此,字符串连接是用+
完成的。
'123' + 'px'
工作.
123 + 'px'
没有。
123.toString() + 'px'
也没有!
为什么?在其他地方传递字符串+数字连接似乎有效。这与jQuery有关吗?
因此,如何从数字值和.css()
的文本后缀/前缀创建字符串?
示例: http://jsbin.com/ebiro4
发布于 2011-01-26 09:47:47
一些CSS属性(如width()
和height()
)具有专用的jQuery方法,这些方法接受数值参数并转换为px
。
对于其他人,您应该尝试连接字符串,以避免意外的结果。举个例子,在jsbin中,您试图将'#'
和080
连接起来,这实际上是带一个无关紧要的零的80
,因此您最终得到的是'#80'
,它不是一个有效的十六进制颜色代码。
发布于 2011-01-26 09:48:41
'123' + 'px'
works
123 + 'px'
也应该工作,但是要像=> '' + 123 + 'px'
那样做。
123.toString() + 'px'
应该是=> 123..toString() + 'px'
最后一个有点棘手。ECMA-/Javascripts期望在这个位置上有完全合格的十进制位。123.0.toString()
与..
快捷方式基本相同。
#80
绝不是Javascript中的数值。
'#' + 080
不能工作,因为080
是一个八进制值。火虫抛出:08 is not a legal ECMA-262 octal constant
。
发布于 2011-01-26 09:48:46
实际上,您需要使用123..toString()
,因为Javascript将123.toString()
解释为浮点值。您需要做的第一件事是用123.
创建一个浮点,它等于123.0
,然后将它转换成一个字符串。
https://stackoverflow.com/questions/4803094
复制相似问题