2011-10-18 10 views
0

リストボックス1からリストボックス2にすべての選択項目を追加しようとしていますが、うまくいきます。問題はリストボックス2のlistitemの項目値をJSONから取得するIDに設定したいということです。JQuery:リストボックスに追加 - 値としてJSONデータを設定する

私はJSONのIDを持っていますが、appendToを使用すると値を設定する方法がわかりません。

ここで私は値が「0」に設定されている場合は、今使っているコードです:

$('#ListBox1 option:selected').appendTo('#ListBox2'); 

私はこのような何かをしなければならないと思う:

var numberOfSelectedItems = $('#ListBox1 option:selected').length;  
    for(int i = 0; i < numberOfSelectedItems; i++) 
    { 
     var ID = data.array[i].ID; //This is the ID value from JSON. 

     //TODO: Set the ID as value on each selected item 
    } 

助けてくださいは= )

+0

$( '#ListBox1オプション:選択済み)を配列に保存し、それを繰り返します。 – sathis

答えて

0

.attr() jQuery functionを使用して、各項目のIDを設定することができます。おそらく、リストの次のIDにJavaScriptの便利なarray functionsを組み合わせて使用​​できます。

のような何か...

$('#ListBox1 option:selected') 
    .attr('id', data.array.shift()) 
    .appendTo('#ListBox2'); 

jQueryのは、あなたが与えられた選択にチェーン一緒に連続操作することができますので、あなたの第二のリストにそれを追加する前に、各上のid属性を設定することができます。

data.array.shiftは、配列の最初の項目を削除して返します。したがって、(リスト項目ごとに)呼び出されるたびに、処理中のリスト項目に割り当てられた次のIDが取得されます。

もちろん、data.arrayを使用する必要がある場合は、最初にコピーする必要があります。

+0

ありがとう、私はかなりシフトメソッドが動作することを確信していますが、私の配列がオブジェクトであるときにどのようにシフトメソッドを使用するのですか?私のアプリケーションでは、オブジェクトとIDが属性の場合、データは配列になります。これを試しましたがうまくいかなかった: 'data.array.ID.shift()' – bale3

+0

それはちょうど 'data.array.shift()。ID'です。 – tomtheguvnor

関連する問題