【问题标题】:Comparing an input value to an array value using jquery使用jquery将输入值与数组值进行比较
【发布时间】:2015-03-04 05:19:04
【问题描述】:

我正在使用 ajax 调用来使用 jQuery 获取 JSON 文件。虽然我成功地这样做并且可以达到文件的值,但下一个挑战是获取对象数组的值并将其与输入源进行比较。如果为 true,则在 span 或 div 中打印出来...

这是使用 jQuery 的脚本:

<!doctype html>
<html>
<head>
    <title>jQuery.getJSON demo</title>
</head>

<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
    /*
    $.getJSON('zipcodes.json', function(data){
        console.log('It worked!');
    //test
}); 
    */

    $.ajax({
    url: 'zipcodes.json',
    dataType: 'json',
    type: 'get',
    cache: false,
    success: function (data) {
        $(data.zipcodes).each(function(index, value) {

            console.log(value.zip);

        });
    }

});
</script>

JSON 文件是:

{
    "zipcodes": [
    {
        "zip": "20002",
        "city": "Washington",
        "state": "DC"
      },
      {
        "zip": "10001",
        "city": "New York",
        "state": "NY"
      }
  ]
}

JSON 文件是有效的,但我想我正试图找出 zip 值的比较,例如

如果数组中的 var text = '10001' == value.zip 返回 HTML 中的城市和州,我可以实现该部分,但在 jQuery 部分我不知道如何获取索引。我尝试使用 .eq 和 .get,但它不起作用。

谢谢!

【问题讨论】:

  • 您也可以获取文件内容并使用JSON.parse(JSONString);直接将其转换为JS对象,然后您可以使用循环对其进行迭代。
  • 不明白是什么问题,我只是用你的代码做 value.zip == '10001' 并且它为 1 个邮政编码返回 true,你到底哪里有问题?
  • 使用indexOf,例如:var zips = ["11111", "12345", "12345"]并检查if (zips.indexOf(value.zip) &gt; -1)
  • 让我这样说。我有一个输入文本框,其形式将采用邮政编码值..例如10001 然后在数组中比较它并返回它。我使用了 JS 对象,但我想尝试 jQuery,因为我是新手。 tymeJV 的评论不适用,因为您正在定义一个数组。

标签: javascript jquery html ajax json


【解决方案1】:

请看我的Plunk 我很确定这就是你所追求的。

你的 jQuery 都很好。您只需要使用 jQuery $.inArray 函数检查输入的 zip 与数组的值即可获取索引:

$.inArray(value, myZips.zipcodes);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多