【问题标题】:Push strings from data attributes into array将字符串从数据属性推入数组
【发布时间】:2014-08-05 08:56:18
【问题描述】:

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 
  });
});

【问题讨论】:

    标签: javascript jquery html arrays push


    【解决方案1】:

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

    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 
        });
    });
    

    【讨论】:

      【解决方案2】:

      Working Demo

      您需要将一个数组传递给 `arrayOfData' ,而您之前只是传递了字符串。

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

      $(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
          });
      });
      

      【讨论】:

        【解决方案3】:

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

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

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

        fiddle

        【讨论】:

          猜你喜欢
          • 2021-10-11
          • 1970-01-01
          • 1970-01-01
          • 2018-10-19
          • 2020-09-27
          • 1970-01-01
          • 1970-01-01
          • 2018-02-21
          • 2017-04-16
          相关资源
          最近更新 更多