我有一个选择框,如:
<select name="blah" id="meh">
<option value="1">Car</option>
<option value="2">Horse</option>
<option value="3">Van</option>
</select>
然后我有一些Json喜欢:
[Object { id="1", label="Car", value="1"}, Object { id="3", label="Van", value="3"}]
我想要做的是从select中获取与我的json中的值匹配的索引,并且我还想从我的select中获取不在我的json中的索引。所以我写了这段代码:
$.map( data, function( item ) {
$('#meh option').filter(function() {
if($(this).text() == item.label){
$('ul.chzn-results').append('<li id="meh_chzn_o_'+$(this).index()+'" class="active-result">' + item.label + '</li>');
}
});
});
现在这就是我的json中的索引;然而,我正在努力获得那些不在json中的人,然后对那些不属于json的人做$('#meh_chzn_c_'+$(this).index()+').remove();
。
答案 0 :(得分:0)
所以我想出了以下代码来解决这个问题:
$.getJSON(surl+'contacts/_ajax/ajax_listTribes.cfm?bIsAjax=true&lstTribeIDs='+lsttribeids, function(data) {
var arrids = $.map(data,function(obj){ return obj.id });
$('#lstTribeIDs option').each(function(){
if( $.inArray($(this).val() , arrids) != -1 ) {
//do stuff
} else {
//do other stuff
}
});
});
因此,获取JSON对象,获取它们的'id'部分并转换为数组,然后循环遍历<select>
并检查当前<option>
的值是否在我的数组中。
答案 1 :(得分:-2)
看起来你的json搞砸了..
{ id="1", label="Car", value="1"}
所有键值对都应该在“”Double Quotes 中。 键值对由冒号
分隔所以你的json应该是这样的
[
{ "id" : "1", "label" : "Car", "value" :"1"},
{ "id" : "3", "label" : "Van" , "value" : "3"}
]
修复了json对象后,这就是输出。