Border-left-width在jQuery中返回NaN
我正忙于编写一小段代码,允许跨浏览器使用边框框模型。 到目前为止,基本function工作正常,但我无法获得保证金。 它应该适应可用的空间,但是控制台返回NaN,我不知道它来自哪里。
这是一个小提琴。
console.log甚至没有记录任何东西,我不知道为什么。 任何帮助是极大的赞赏。
在你的小提琴的许多部分你有这种模式:
($(this).css("border-left-width") * 2).replace("px", "")
您正在尝试在执行乘法后擦除px
,这会导致语法错误。 它应该是
($(this).css("border-left-width").replace("px", "") * 2)
哪个适用于自动类型转换或
(parseInt($(this).css("border-left-width"), 10) * 2)
将字符串解析为整数,删除尾随的px
:
如果
parseInt
遇到的字符不是指定基数中的数字,它会忽略它和所有后续字符,并返回解析到该点的整数值。parseInt
将数字截断为整数值。 允许前导和尾随空格。
小提琴
parseInt
参考
因为这:
$(this).css("padding-left")
和
$(this).css("border-left-width")
返回一个包含“px”的字符串,您尝试将其乘以2,从而产生NaN。 您可以通过在乘法之前将结果字符串解析为浮点数来解决此问题,如下所示:
(parseFloat($(this).css("padding-left")) * 2 )
希望这可以帮助!