我打算使用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
});
});
答案 0 :(得分:3)
通过逗号分隔符拆分状态数据,您需要从第二个和第三个数组项中删除单引号才能正确应用颜色
$(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)
你需要将一个数组传递给`arrayOfData&#39; ,你之前只传递过字符串。
$(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
});
});