我有这样的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
请帮助解决这个问题!
答案 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(",", ".")));