首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JQuery在文本框中显示特定的文本?

如何使用JQuery在文本框中显示特定的文本?
EN

Stack Overflow用户
提问于 2016-09-02 09:27:33
回答 2查看 56关注 0票数 0

我使用以下代码从总共5个不同的输入计算平均值。

代码语言:javascript
复制
var total = p1 + p2 + p3 + p4 + p5;
var priority = total / 5;

我试图根据变量优先级的值在文本框中显示"High“、"Medium”和"Low“:

我已经使用了这个代码,但是似乎没有什么是正确的,请帮助我:

代码语言:javascript
复制
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');
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-02 09:31:54

可以使用.val(function),条件运算符;如果priority大于4,则将元素value设置为"High";如果priority大于2.5,则将value设置为"Medium";否则,将value设置为"Low"

代码语言:javascript
复制
$("#textbox").val(_, function(val) {
  return priority > 4 ? "High" : priority > 2.5 ? "Medium" : "Low"
});
票数 2
EN

Stack Overflow用户

发布于 2016-09-02 09:45:49

代码语言:javascript
复制
if (5 > priority > 4)

不是测试priority是否在54之间的正确方法。表达式被解析为5 > (priority > 4)(priority > 4)的计算结果为truefalse,然后在与5进行比较时将其转换为10。所以这要么是5 > 1,要么是5 > 0,它们都是真的。

正确的方法是:

代码语言:javascript
复制
if (5 > priority && priority > 4)

但是真的没有必要测试priority是否介于两个值之间。仅当前一个else if失败时,每个if才会运行。所以如果你到了第二个if,你已经排除了priority > 4的情况,所以你不需要再次测试它。此外,当priority恰好等于其中一个边界值时,您的任何情况都不会成功;当为priority == 4时,它将被priority > 4priority < 4排除。因此,只需检查范围的一端,另一端将照顾自己。

所以代码应该是:

代码语言:javascript
复制
if (priority > 4) {
    $("#textbox").val("High");
} else if (priority > 2.5) {
    $("#textbox").val("Medium");
} else {
    $("#textbox").val("Low");
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39283067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档