Javascript Mod或33%函数将jQuery Progressbar更新为100%

Javascript Mod或33%函数将jQuery Progressbar更新为100%,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,基于所有3个组中的一个或多个项目,如何处理将progressbar更新为100%的问题 例如,如果我有20种水果、0种谷物和2种蔬菜,它应该显示66/67%。如果每组有一个或多个项目,则显示100%;一组中只有一个或多个应显示33/34%完成。我不确定我是否应该在这里汇总,或者使用mod。肯定需要帮助 $(document).ready(function($){ $( "#progressbar" ).progressbar(); var fruits = parseInt($("li

基于所有3个组中的一个或多个项目,如何处理将progressbar更新为100%的问题

例如,如果我有20种水果、0种谷物和2种蔬菜,它应该显示66/67%。如果每组有一个或多个项目,则显示100%;一组中只有一个或多个应显示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");

});
$(文档).ready(函数($){
$(“#progressbar”).progressbar();
var fruits=parseInt($(“li#num of fruits”).text();
var vegies=parseInt($(“li#num of vegies”).text();
var grains=parseInt($(“li#num of grains”).text();
如果(水果>0){var fruitsMod=1}
else{var fruitsMod=0}
如果(veggies>0){var veggiesMod=1}
else{var vegiesmod=0}
如果(颗粒>0){var grainsMod=1}
else{var grainsMod=0}
var foodSum=33.33*(果蔬+蔬菜+谷物);
$(“#progressbar”).progressbar(“期权”、“价值”、数学圆(foodSum));
$(“”).attr(“id”,“食物量”).text($(“#progressbar”).progressbar(“选项”,“值”)+“%”)。prependTo(“h3完整性”);
});

HTML只是一个空的div#progressbar。Progressbar是jQuery UI插件版本。

这将为您节省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);

你是在寻找一种更好的方法来确定百分比吗?是的,这是可行的,但是分配额外的var(例如FrutsMod)并乘以33和四舍五入似乎是很长的路要走。我只是不太了解jquery,我想有人知道一种更简单的方法来实现这一点。你可以用一个
条件表达式将它缩短一点。我唯一要添加的是parseInt的基数参数:
var-fruitsMod=(parseInt($(($)li#num of fruits”).text(),10)>0?1:0)