jQuery$。每个循环工作不正常

jQuery$。每个循环工作不正常,jquery,json,each,Jquery,Json,Each,当我在循环中循环时,我试图匹配数组是否包含用户输入的值,如果是,则消息国家存在。但这不起作用。代码如下: <input type="text" id="topics" > <a id="submit-button" href="#">button</a> $('#submit-button').click(function(){ var isCountry = $("#topics").val(); $.each(topics, fun

当我在循环中循环时,我试图匹配数组是否包含用户输入的值,如果是,则消息国家存在。但这不起作用。代码如下:

<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");
        }
        });

});

$(“#提交按钮”)。单击(函数(){
var isCountry=$(“#主题”).val();
$。每个(主题、功能(i、项目){
if(isCountry==topics[i].value){
警报(“国家存在”);
}否则{
警报(“国家不存在”);
}
});
});
完整代码如下:


谢谢大家

你们可以用它,也可以用小写,看起来更合适:


您可以使用它,也可以使用小写,这似乎更合适:


你的代码正在运行。它只是在数组(存储在topics变量中)上循环,如果输入的值等于第i个值,则在每一步发出一条消息。因此,如果您进入阿尔及利亚,那么在第三次迭代中,您将看到一条消息“国家存在”,在所有其他迭代中,您将看到“国家不存在”。

您的代码正在工作。它只是在数组(存储在topics变量中)上循环,如果输入的值等于第i个值,则在每一步发出一条消息。因此,如果您进入阿尔及利亚,那么在第三次迭代中,您将看到一条消息“country exists”,在所有其他迭代中,您将看到“country Not exists”。

根据您的要求,您的代码在小提琴中运行良好


如果输入值在数组中,它将显示警报消息“country exists”。但是,由于您正在为“topics”数组的每个索引循环警报消息,因此它还会显示“country not exist”警报以及“country exists”警报消息

根据您的要求,您的代码在小提琴中运行良好


如果输入值在数组中,它将显示警报消息“country exists”。但是,由于您正在为“topics”数组的每个索引循环警报消息,因此它还会显示“country not exist”警报以及“country exists”警报消息

在您的代码中,每个循环都会迭代到topics对象的长度,这就是为什么要多次发出警报的原因。 请使用以下脚本,而不是此脚本:

$('#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");
    }

});

这是一个有效的演示:

在您的代码中,每个循环都会迭代到topics对象的长度,这就是为什么要多次发出警报的原因。 请使用以下脚本,而不是此脚本:

$('#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");
    }

});

以下是工作演示:

什么是“不工作”?发生了什么,您预计会发生什么?例如,如果用户键入“阿尔及利亚”,它应该警告“国家存在”,如果用户键入一些毫无意义的“erenqetntnrt”,它应该警告“国家不存在”。就像这样:它是存在的,但只有在两次警告“国家不存在”之后。为什么?因为阿富汗阿尔及利亚和阿尔巴尼亚阿尔及利亚和两次您都在执行
警报(“国家不存在”)
。只有在您测试了数组中的所有元素并且没有找到匹配项时才执行
警报(“国家/地区不存在”)
(作为改进,您应该使用对象而不是数组来完全有效循环)。@谢谢,这很有效,简单易行:)到底什么“不起作用”?发生了什么,您预计会发生什么?例如,如果用户键入“阿尔及利亚”,它应该警告“国家存在”,如果用户键入一些毫无意义的“erenqetntnrt”,它应该警告“国家不存在”。就像这样:它是存在的,但只有在两次警告“国家不存在”之后。为什么?因为阿富汗阿尔及利亚和阿尔巴尼亚阿尔及利亚和两次您都在执行
警报(“国家不存在”)
。只有在您测试了数组中的所有元素并且没有找到匹配项时才执行
警报(“国家不存在”)
(作为改进,您应该使用对象而不是数组来完全有效循环)。@谢谢,这很有效,简单易用:)