-1

私は次のような選択ボックスを持っています:

<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"}]

私がやりたいのは、jsonの値と一致するselectからインデックスを取得することです。また、jsonにないselectからインデックスを取得したいと思います。だから私はこのコードを書いた:

$.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();ます。

4

2 に答える 2

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」部分を取得して配列に変換し、my をループして、現在の値がmy array 内に<select>あるかどうかを確認します。<option>

于 2012-10-05T08:16:52.143 に答える
-2

あなたのjsonが台無しになっているようです..

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

すべてのキーと値のペアは、"" 二重引用符で囲まれている必要があります。そして、コロンで区切られたキーと値のペア:

したがって、jsonは次のようになります

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

json オブジェクトが修正された後、これが出力されました。

デモをチェック

于 2012-10-02T17:37:15.083 に答える