如果根据所有3个组中的一个或多个项目,如何处理将进度条更新为100%?
例如,如果我有20个水果,0个谷物和2个蔬菜,它应该显示66/67%。如果我有每个组中的一个或多个项目,则显示100%;并且只有1组中的一组或多组应该显示33/34%完成。我不确定我是否应该整理,或者在这里使用mod。绝对需要帮助......
$(document).ready(function($){
$( "#progressbar" ).progressbar();
var fruits = parseInt($("li#num-of-fruits").text());
var veggies = parseInt($("li#num-of-veggies").text());
var grains = parseInt($("li#num-of-grains").text());
if (fruits > 0) { var fruitsMod = 1 }
else { var fruitsMod = 0 }
if (veggies > 0) { var veggiesMod = 1 }
else { var veggiesMod = 0 }
if (grains > 0) {var grainsMod = 1}
else { var grainsMod = 0 }
var foodSum = 33.33 * (fruitsMod + veggiesMod + grainsMod);
$("#progressbar").progressbar("option", "value", Math.round(foodSum));
$("<span>").attr("id", "food-amount").text($("#progressbar").progressbar("option", "value") + "%").prependTo("h3#completeness");
});
HTML只是一个空div#progressbar。 Progressbar是jQuery UI插件版本。
答案 0 :(得分:1)
这应该可以节省6行和~150字节:
var fruitsMod = (parseInt($("li#num-of-fruits").text()) > 0 ? 1 : 0);
var veggiesMod = (parseInt($("li#num-of-veggies").text()) > 0 ? 1 : 0);
var grainsMod = (parseInt($("li#num-of-grains").text()) > 0 ? 1 : 0);
var foodSum = (100 / 3) * (fruitsMod + veggiesMod + grainsMod);