我使用以下代码从总共5个不同的输入计算平均值。
var total = p1 + p2 + p3 + p4 + p5;
var priority = total / 5;我试图根据变量优先级的值在文本框中显示"High“、"Medium”和"Low“:
我已经使用了这个代码,但是似乎没有什么是正确的,请帮助我:
if (5 > priority > 4)
{
$("#textbox").val('High');
} else if (4 > priority > 2.5)
{
$("#textbox").val('Medium');
} else if (2.5 > priority > 0)
{
$("#textbox").val('Low');
}发布于 2016-09-02 09:31:54
可以使用.val(function),条件运算符;如果priority大于4,则将元素value设置为"High";如果priority大于2.5,则将value设置为"Medium";否则,将value设置为"Low"
$("#textbox").val(_, function(val) {
return priority > 4 ? "High" : priority > 2.5 ? "Medium" : "Low"
});发布于 2016-09-02 09:45:49
if (5 > priority > 4)不是测试priority是否在5和4之间的正确方法。表达式被解析为5 > (priority > 4)。(priority > 4)的计算结果为true或false,然后在与5进行比较时将其转换为1或0。所以这要么是5 > 1,要么是5 > 0,它们都是真的。
正确的方法是:
if (5 > priority && priority > 4)但是真的没有必要测试priority是否介于两个值之间。仅当前一个else if失败时,每个if才会运行。所以如果你到了第二个if,你已经排除了priority > 4的情况,所以你不需要再次测试它。此外,当priority恰好等于其中一个边界值时,您的任何情况都不会成功;当为priority == 4时,它将被priority > 4和priority < 4排除。因此,只需检查范围的一端,另一端将照顾自己。
所以代码应该是:
if (priority > 4) {
$("#textbox").val("High");
} else if (priority > 2.5) {
$("#textbox").val("Medium");
} else {
$("#textbox").val("Low");
}https://stackoverflow.com/questions/39283067
复制相似问题