以下代码运行正常。我要求帮助我想过滤json数据,也就是说我要显示相应id大于或等于3的标签。
在这种情况下,应仅显示"印度"和#34;法国"在建议清单中。
请注意,我使用了Easy autocomplete plugin。
如果有人能帮助我,我真的很感激。提前致谢
下面的是我的json文件
countries.json
[
{
"id": "0.1",
"label": "America" },{
"id": "0.9",
"label": "UAE" },{
"id": "3.2",
"label": "India"},{
"id": "3.02",
"label": "France" } ]
HTML
的index.php
<div class="form-group">
<input id="city" type="text" name="city" class="form-control" />
</div>
和脚本是:
的script.js
$(function() { var options = { url: "../review/countries.json", getValue: function(element) {
return element.label; list: {
match: {
enabled: true
} }; $("#city").easyAutocomplete(options);
答案 0 :(得分:2)
试试这个,
$(function() {
var options = {
url: "../review/countries.json",
getValue: function(element) {
var id = parseFloat(element.id);
if (id > 3) {
return element.label;
} else {
return '';
}
},
list: {
match: {
enabled: true
}
}
};
$("#city").easyAutocomplete(options);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://easyautocomplete.com/dist/jquery.easy-autocomplete.min.js"></script>
<div class="form-group">
<input id="city" type="text" name="city" class="form-control" />
</div>
&#13;
答案 1 :(得分:1)
这是迭代抛出项目数组的代码:
var options = [
{ "id": "0.1", "label": "America" },
{ "id": "0.9", "label": "UAE" },
{ "id": "3.2", "label": "India"},
{ "id": "3.02", "label": "France" }
];
var filtered = new Array();
$.each(option, function(index, item) {
if(item.id >= 3) {
filtered.push(item);
}
});
注意:您需要在json文件上加载带有GET ajax请求的选项变量,然后使用过滤而不是选项在您的自动填充功能中。
以下是ajax加载的完整示例:
$(document).ready(function(){
$.getJSON("../review/countries.json", function(data) {
var filtered = new Array();
$.each(option, function(index, item) {
if(item.id >= 3) {
options.push(item);
}
});
var options = {
data: filtered
};
$("#city").easyAutocomplete(options);
}
});