JQuery 选择器 JSON

JQuery Selector with JSON

我正在尝试使用以下方法将我的 JSON 值检索到我的自动完成 table 行:

Javascript:

 <script>
        $(document).ready(function () {
            var text2 = $("#Text2").tautocomplete({
                width: "500px",
                columns: ['id', 'title'],
                ajax: {
                    url: "products.json",
                    type: "GET",
                    data: function () {
                        return [{ test: text2.searchdata() }];
                    },
                    success: function (data) {

                        var filterData = [];

                        var searchData = eval("/" + text2.searchdata() + "/gi");

                        $.each(data, function (i, v) {
                            if (v.products.search(new RegExp(searchData)) != -1) {
                                filterData.push(v);
                            }
                        });
                        return filterData;
                    }
                },
                onchange: function () {
                    $("#ta-txt").html(text2.text());
                    $("#ta-id").html(text2.id());
                }
            });
        });
    </script>

products.json:

 {"products":[[{"id":"1","country":"Photobooks"},{"id":"2","country":"Cards"}]]}

我收到了这个错误: TypeError: v.products 未定义

如有任何帮助或建议,我们将不胜感激。

鉴于变量 data 的 products.json returns,您的循环中没有 v.productsdata.products 是一个数组,其中一个节点是您的结果数组。看一看:

{"products":
    [
        [
            {
                "id":"1",
                "country":"Photobooks"
            },
            {
                "id":"2",
                "country":"Cards"
            }
        ]
    ]
}

这将遍历这些结果

success: function (data) {
    $.each(data.products[0], function (i, v) {
        // etc
    });
}

Demo