2012-10-02 19 views
-1

获得所有项目的索引列表中的我有这样一个选择框:jQuery的从一个选择框

<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

所以我想出了下面的代码来解决这个问题:

$.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对象,让他们的“身份证”部分和coverting到一个数组,然后遍历我的<select>并检查当前<option>的值是否在我的数组中。

-2

看起来你的JSON是搞砸了..

{ id="1", label="Car", value="1"} 

所有键值对,应该是在“”双引号。 而由冒号分隔的键值对:

所以你的JSON应该是这样的

[ 
    { "id" : "1", "label" : "Car", "value" :"1"}, 
    { "id" : "3", "label" : "Van" , "value" : "3"} 
] 

后JSON对象是固定的,这是输出。

Check DEMO

+0

这并没有真正回答这个问题。 – Jarede

+0

您是否检查演示 –

+0

是的,但我试图获取json中存在的select中所有项目的索引列表,以及select中不存在的json项目的所有索引列表。 – Jarede

相关问题