将字符串从数据属性推送到数组中

时间:2014-06-15 09:43:05

标签: javascript jquery html arrays push

Original Example

Failed Example

我打算使用this site的条形图插件。如何将每个div.get的数据属性中的字符串推送到数组arrayOfData

例如:

<div class="get" data-stats="10.3,'Jan','#222222'"></div>
<div class="get" data-stats="15.2,'Feb','#7D252B'"></div>

我想将字符串从data-stats推送到这样的数组中:

arrayOfData = new Array(
 [10.3,'Jan','#222222'],
 [15.2,'Feb','#7D252B']
);

这是push正确的做法吗?在失败的例子中,我根本无法将字符串传递给数组。任何帮助,将不胜感激。

HTML:

<div id="exampleSimple" style="width: 400px; height: 300px; position: relative; text-align: center;"></div>

<div class="get" data-stats="10.3,'Jan','#222222'"></div>
<div class="get" data-stats="15.2,'Feb','#7D252B'"></div>
<div class="get" data-stats="13.1,'Mar','#EB9781'"></div>
<div class="get" data-stats="16.3,'Apr','#FFD2B5'"></div>
<div class="get" data-stats="14.5,'May','#4A4147'"></div>

Jquery的:

$(function() {
  var arrayOfData = [];
  $('.get').each(function(get){
   var getstats = $(this).data('stats');  
      arrayOfData.push(getstats);
   });

  $('#exampleSimple').jqbargraph({
     data: arrayOfData 
  });
});

3 个答案:

答案 0 :(得分:3)

通过逗号分隔符拆分状态数据,您需要从第二个和第三个数组项中删除单引号才能正确应用颜色

DEMO

$(function() {
    var arrayOfData = [];
    $('.get').each(function(get){
        var getstats = $(this).data('stats').split(',');

        getstats[1] = getstats[1].replace(/'/g,'');
        getstats[2] = getstats[2].replace(/'/g,'');

        arrayOfData.push(getstats);
    });

    $('#exampleSimple').jqbargraph({
        data: arrayOfData 
    });
});

答案 1 :(得分:1)

看起来你有一个数组数组,所以你应该试试这个:

arrayOfData.push(getstats.split(','));

您的data('stats')是一个字符串,因此您需要从中提取。另外,删除数据属性中的单引号。

<强> fiddle

答案 2 :(得分:1)

Working Demo

你需要将一个数组传递给`arrayOfData&#39; ,你之前只传递过字符串。

  • 第一个参数为整数 - 条形长度。
  • 第二个参数为字符串 - 月。
  • 第3个参数为字符串 - 颜色。

$(function () {
    var arrayOfData = new Array();
    $('.get').each(function () {
        var getstats = $(this).data('stats');
        getstats = getstats.split(',');
        getstats[0] = parseInt(getstats[0]);
        getstats[1] = getstats[1].replace(/\'/g, '');
        getstats[2] = getstats[2].replace(/\'/g, '');

        arrayOfData.push(getstats);
    });
    console.log(arrayOfData[1]);
    $('#exampleSimple').jqbargraph({
        data: arrayOfData
    });
});