2015-10-22 63 views
0

我有多个坐在特定数据属性中的数字实例。有些数字有逗号,有些则没有。遍历.class的多个实例并将逗号更改为点

如何迭代所有数字并将逗号更改为它所在的点?

我试着以下,但遇到了一些,这并不包含逗号时,似乎失败:

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

使用attr()代替data()

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

Demo

的。数据()调用特殊 - 它不仅检索HTML5数据属性也试图评估/解析的属性。因此,当通过.data()检索到的属性如data-myjson ='{“hello”:“world”}'将在通过.attr()检索时返回一个Object,并返回一个字符串。

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

相关问题