我的循环正在计算页面中存在多少个图表,之后它会将图表的这些值存储到变量中。我正在尝试利用这些值并将它们附加到我的DOM中。
这是我的困境,当我在循环中获取变量时,例如。 visual_pie_val,它将返回两个值“20”和“10”。另一方面,如果我在循环外部获取它,它将仅返回最后一个值“10”。
我需要它来返回各自的值
示例:
对于 visualization-80 ,它需要返回 20 ,对于 visualization-81 ,它需要返回 10 < /强>
我还需要确定图表类型,所以,我使用了if
语句,如果我把if语句放在循环中,正如预期的那样,我可以确定类型,但同时,我生成了两次元素(页面中当前的图表数量),因为它位于for
循环内。
这就是我的代码:
// CustomVisualizer
function numAttrs(obj) {
var count = 0;
for(var key in obj) {
if (obj.hasOwnProperty(key)) {
++count;
}
}
return count;
}
var visual = visualizer.charts; // contains "visualization-80" and "visualization-81"
visual_list = [],
visual_title = [],
visual_type = [],
visual_pie_val = [],
shadow_box = '<div class="percent"></div><div class="inner"></div> <div class="outer"></div>';
// load key
for(var k in visual) visual_list.push(k);
var visual_target = '#' + visual_list.join(', #');
for ( i = 0; i < numAttrs(visual); i++ ) {
visual_title[i] = visual[visual_list[i]].settings.title;
visual_type = visual[visual_list[i]].type; // currently it's "pie"
visual_pie_val = visual[visual_list[i]].data[0][1]; // "visualization-80" value is 20, "visualization-81" value is 10
// remove title
visual[visual_list[i]].settings.title = '';
if(visual_type == 'pie') {
$(visual_target).parent().append(shadow_box);
$(visual_target).parent().find('.percent').append(visual_pie_val) // visual_pie_val will return "2010"
} else {
console.log('not pie');
}
};
$(visual_target).parent().find('.percent').append(visual_pie_val); // visual_pie_val will return "10"
这是我的小提琴,可以更好地说明我的问题:
我需要建议。谢谢!
答案 0 :(得分:0)
问题出在第14行。你输入一个分号而不是逗号,使其余的变量定义为全局变量。
尝试将分号更改为逗号并查看它是否有效