我的循环正在计算页面中有多少个图表,然后它会将图表的值存储到变量中。我试图使用这些值并将它们附加到我的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"这是我的小提琴,以更好地说明我的问题:
http://jsfiddle.net/9hKHJ/1/
我需要建议。谢谢!
发布于 2014-08-03 19:30:30
问题在第14行,你用分号代替逗号,使你定义的其他变量成为全局变量。
试着把分号改为逗号,看看它是否有效。
https://stackoverflow.com/questions/25108071
复制相似问题