获取jquery格式化的值

时间:2011-12-01 14:39:19

标签: javascript jquery

我有这样的div:

<td id="length" data-length=<?php echo $length;?> >

我想在jquery脚本中获取我的php变量($ length)的值。

之后我必须格式化它以用点替换逗号。

使用此代码段:

var $length         = jQuery(this).find("#length");
console.log($length.data('length'));

我看到在控制台中读取我的变量

但是当我想格式化它以用这样的点替换逗号时:

console.log(parseFloat($length.val().replace(",", ".")));

我得到NaN

请帮助解决这个问题!

5 个答案:

答案 0 :(得分:2)

您错过了数据长度值周围的引号。像这样更正您的HTML标记:

<td id="length" data-length="<?php echo $length;?>" >

接下来,您不希望val()想要data('length')

console.log(parseFloat($length.data('length').replace(",", ".")));

答案 1 :(得分:1)

您在.val()而不是<td>上使用.data()

 // Here you're using .data()
console.log($length.data('length'));

 // Here you're using .val() which is wrong.
console.log(parseFloat($length.val().replace(",", ".")));

答案 2 :(得分:1)

如果PHP中的$length变量的值将输出包含逗号,则首先要做的是更正标记:

<td id="length" data-length="<?php echo $length;?>" >

您需要引号,因此结果如下所示:

<td id="length" data-length="1,23" >

然后:

var $length         = jQuery(this).find("#length");
console.log(parseFloat($length.data("length").replace(",", ".")));

...应该在日志中给出“1.23”(给出我上面的示例值)。


或许值得注意:我会避免使用id值“长度”。这个词太常见了,不幸的是id命名空间会被各种各样的东西弄乱,特别是在IE上。我会选择更独特的东西。

答案 3 :(得分:0)

你的代码不太正确,你试图替换包含td#length元素的jQuery对象中的逗号,试试这个:

var length = $("#length").data("length");
console.log(parseFloat(length.replace(",",".");

此外,您的HTML应包含每个属性值的引号,如下所示:

<td id="length" data-length="<?php echo $length;?>">

答案 4 :(得分:0)

console.log(parseFloat($length.attr("data-length").replace(",", ".")));