0

ループをループしているときに、ユーザーが入力した値が配列に含まれているかどうか、はいの場合はメッセージの国が存在するかどうかを照合しようとしています。しかし、これはうまくいきません。コードは次のとおりです。

<input type="text"  id="topics" >
<a id="submit-button" href="#">button</a>

$('#submit-button').click(function(){

    var isCountry = $("#topics").val();

    $.each(topics, function(i, item) {
        if(isCountry == topics[i].value){

             alert("country exists");
        }else{
            alert("country doesn't exists");
        }
        });

});

完全なコードはこちら: http://jsfiddle.net/4XHPY/

君たちありがとう

4

4 に答える 4

2

あなたのコードでは、トピックオブジェクトの長さまで各ループが繰り返されます。そのため、その回数だけアラートを出します。その代わりに、次のスクリプトを使用します。

$('#submit-button').click(function(){

    var isCountry = $("#topics").val();
     var filtered = $(topics).filter(function(){
        return this.value == isCountry;
    });
    if(filtered.length == 0){
         alert("country doesn't exists");
    }else{
         alert("country exists");
    }

});

これが実際のデモです: http://jsfiddle.net/4XHPY/12/

于 2013-06-27T10:41:23.610 に答える