【问题标题】:JQuery Selector with JSON带有 JSON 的 JQuery 选择器
【发布时间】:2015-11-20 07:18:41
【问题描述】:

我正在尝试使用以下命令将我的 JSON 值检索到我的自动完成表行:

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 未定义

任何帮助或建议将不胜感激。

【问题讨论】:

    标签: javascript jquery ajax json jquery-selectors


    【解决方案1】:

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

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

    这将遍历这些结果

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

    Demo

    【讨论】:

    • 谢谢老兄,我知道数组包含我的数组,它现在包含我的数据数组。感谢您的回复。
    猜你喜欢
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 2011-06-21
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多