迭代.class的多个实例并将逗号更改为点

时间:2015-10-22 18:55:03

标签: jquery replace each

我有多个数字实例位于特定的数据属性中。有些数字有逗号,有些则没有。

如何遍历所有数字并将逗号更改为点?

我尝试了以下内容,但遇到一个不包含逗号的数字时似乎失败了:

JS

var dataSource;

$('.bar').each(function(index){
    dataSource = $(this).data('percentage');

    if (dataSource.indexOf(',') != -1) {
        dataSource = dataSource.replace(/,/g, '.');
    }

    $('.result').append(dataSource+"<br>");
})

HTML

<div class="bar" data-percentage="70,33"></div>
<div class="bar" data-percentage="90"></div>
<div class="bar" data-percentage="20"></div>
<div class="bar" data-percentage="100,8"></div>
<div class="bar" data-percentage="10,4"></div>

<div class="result"></div>

http://jsfiddle.net/5bxouuae/

1 个答案:

答案 0 :(得分:1)

使用attr()代替data()

dataSource = $(this).attr('data-percentage');

<强> Demo

  

.data()调用很特殊 - 它不仅检索HTML5数据属性,还尝试评估/解析属性。所以使用像data-myjson =&#39; {&#34; hello&#34;:&#34; world&#34;}&#39;当通过.data()检索时将返回一个Object,而通过.attr()检索将返回一个字符串。

jQuery .data() does not work, but .attr() does