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 ) 

希望这可以帮助!

Interesting Posts