2012-10-02 23 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

相關問題