0

我无法让 .replace 处理 td 元素。我已经尝试丢失我正在寻找的可变方法,但没有任何效果。

http://jsfiddle.net/h3mnj/

的HTML:

<table>
<tr>
    <td class="inv-amt">$567.98</td>
    <td class="inv-amt">$345.23</td>
    <td class="inv-amt">$211.09</td>
</tr>
</table>

js:

$(".inv-amt").each(function(){
    $(this).text().replace("$", "");
});

最终目标是我想从 td 中获取整数,这样我就可以执行以下操作:

$(".inv-amt").each(function(){
  if($(this).text() > 0){
    //Do something
  } else if($(this).text() < 0){
    //Do something else
  }
});

所以我需要把 $ 从 td 中去掉,这样它就不会导致 NaN。我试过 parseFloat 但无法让它工作。所以我实际上不需要替换,但它不起作用,所以我先尝试替换,然后比较文本。我能做些什么来完成呢?

4

4 回答 4

5

试试这个方法:

问题是您实际上并没有替换 DOM 中的文本。相反,您只是替换文本值。您可以利用该.text()功能根据您的情况重置值。

$(".inv-amt").each(function(){
    $(this).text(function (_, oldValue){
        return oldValue.replace("$", "");
    })
});

您可以直接使用.text()来替换它。无需迭代。

$(".inv-amt").text(function (_, oldValue){
        return oldValue.replace("$", "");
});

演示

于 2013-05-27T22:52:51.530 回答
3

尝试这个:

$(this).text($(this).text().replace("$", ""));
于 2013-05-27T22:53:46.057 回答
2

完成替换后,您必须实际设置文本:

var newText = $(this).text().replace("$", "");
$(this).text(newText);
于 2013-05-27T22:52:34.020 回答
1

http://jsfiddle.net/h3mnj/1/

replace 函数返回文本,实际上并不编辑文本。

试试这个代码:

$(".inv-amt").each(function(){
    $(this).text($(this).text().replace("$", "")); 
});
于 2013-05-27T22:54:19.207 回答