if else在Ajax和Jquery中的条件不起作用

时间:2015-09-06 10:27:17

标签: javascript jquery html ajax

我是Ajax和JQuery的新手,简单的要求是使用number输入字段显示用户选择的值。

我的代码如下:

<input type="text" id="number" />
<span id="display"></span>

<script type="text/javascript">
    $('#number').keyup(function (){
        if($('#number').text($(this).val())===1){
            $("#display").html("15,000");
        }
        else if('#number').text($(this).val())==2){
            $("#display").html("28,000");
        }
        else if('#number').text($(this).val())==3){
            $("#display").html("39,000");
        }
        else if('#number').text($(this).val())==4){
           $("#display").html("48,000");
        }
        else if('#number').text($(this).val())==5){
           $("#display").html("55,000");
        }
    });
</script>

1 个答案:

答案 0 :(得分:2)

它与Ajax无关。您的语法无效。

首先,你有许多带有ommited括号的语句,例如这句话:

else if('#number').text($(this).val())==2)

通过在('#number')前添加一个括号,代码已修复。

if陈述的条件不是我们所需要的。这样的语句检查text()方法是否返回true。此方法设置匹配元素的文本内容。显然,您不需要使用它。您需要做的就是检查输入的值。这可以在val()方法的帮助下完成。

因此,您的代码应如下所示:

$(function() {     
    $('#number').keyup(function (){
        if($(this).val() == 1){
            $("#display").html("15,000");
        }
        else if($(this).val() == 2){
            $("#display").html("28,000");
        }
        else if($(this).val() == 3){
            $("#display").html("39,000");
        }
        else if($(this).val() == 4){
            $("#display").html("48,000");
        }
        else if($(this).val() == 5){
            $("#display").html("55,000");
        }
    });
});

小提琴:http://jsfiddle.net/82t86kqw/1/

正如评论中已经提到的,这种类型的构造通常使用switch / case语句执行。有很多if / else不是最佳做法。