【问题标题】:Border-left-width returns NaN in jQueryBorder-left-width 在 jQuery 中返回 NaN
【发布时间】:2012-08-27 06:11:33
【问题描述】:

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

Here 是个小提琴。

console.log 甚至没有记录任何东西,我不知道为什么。非常感谢任何帮助。

【问题讨论】:

  • parseInt($(this).css("border-left-width"), 10),由于之前的字符串乘法,代码没有到达console.log

标签: jquery css nan border-box


【解决方案1】:

因为:

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

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

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

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

希望这会有所帮助!

【讨论】:

  • 从技术上讲,字符串中的“px”会导致 NaN,而 parseFloat 会忽略它。
  • 是的,它会解析所有数字,直到遇到非数字字符。但它仍然解决了问题。
【解决方案2】:

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

($(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 截断 数字到整数值。允许前导和尾随空格。

Fiddle

parseInt reference

【讨论】:

    猜你喜欢
    • 2013-06-15
    • 2011-03-08
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    相关资源
    最近更新 更多