带有 JSON 的 JQuery 选择器

Posted

技术标签:

【中文标题】带有 JSON 的 JQuery 选择器【英文标题】:JQuery Selector with JSON 【发布时间】: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 未定义

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

【问题讨论】:

【参考方案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

【讨论】:

谢谢老兄,我知道数组包含我的数组,它现在包含我的数据数组。感谢您的回复。

以上是关于带有 JSON 的 JQuery 选择器的主要内容,如果未能解决你的问题,请参考以下文章

带有 ID 的 jQuery 选择器的性能

使用带有数组的 Jquery 选择器[重复]

jQuery选择带有命名空间元素的选择器

带有变量的 jQuery 选择器

使用带有 jquery 选择器的变量

jQuery 选择器到 JSON 对象表示