1

我正忙着写一小段代码,它应该允许跨浏览器使用边框框模型。到目前为止,基本功能工作正常,但我无法获得工作余地。它应该适应可用的空间,但控制台返回一个 NaN,我不知道它来自哪里。

是一个小提琴。

console.log 甚至没有记录任何东西,我也不知道为什么。任何帮助是极大的赞赏。

4

2 回答 2

4

在您的小提琴的许多部分中,您都有这种模式:

($(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参考

于 2012-09-01T22:59:57.780 回答
0

因为这:

  $(this).css("padding-left")

$(this).css("border-left-width")

返回一个包含“px”的字符串,您尝试将其与 2 相乘,得到 NaN。您可以通过在相乘之前将结果字符串解析为浮点数来解决此问题,如下所示:

(parseFloat($(this).css("padding-left")) * 2 )

希望这可以帮助!

于 2012-09-01T22:56:41.090 回答