Javascript jquery从选择框中获取列表中所有项的索引

Javascript jquery从选择框中获取列表中所有项的索引,javascript,jquery,Javascript,Jquery,我有一个选择框,如: <select name="blah" id="meh"> <option value="1">Car</option> <option value="2">Horse</option> <option value="3">Van</option> </select> 我想做的是从select中获取与json中的值匹配的索引,并且我想从select中获取不在json中的索引。因

我有一个选择框,如:

<select name="blah" id="meh">
<option value="1">Car</option>
<option value="2">Horse</option>
<option value="3">Van</option>
</select>
我想做的是从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中的内容,然后执行$'meh_chzn_c'+$this.index+'.remove;在那些不属于json的部分上。

看起来您的json是乱七八糟的

{ id="1",  label="Car",  value="1"}
所有的键值对都应该在双引号中。 以及由冒号分隔的键值对:

因此,您的json应该如下所示

[
  { "id" : "1",  "label" : "Car",  "value" :"1"},
  { "id" : "3",  "label" : "Van" ,  "value" : "3"}
]
json对象修复后,这就是输出


因此,我提出了以下代码来解决此问题:

$.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”部分并转换为数组,然后在my上循环并检查current的值是否在我的数组中。

这根本不能回答问题。是的,但我正在尝试获取JSON中存在的select中所有项的索引列表,以及select中json中不存在的所有项索引的列表。
$.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
        }
    });
});