2017-09-26 15 views
1

配列から選択ボックスに値を設定しようとしています。私はテキストと異なる価値が必要です。複数の値を持つ配列を反復処理する方法

これまでのところ、このコードは、私が正しい値を得るよう、取り組んでいる。しかし

var myArray = []; 
$('#ctl00_ContentPlaceHolderBody_labelTider > div').each(function() { 
    myArray.push({ 
     content: $(this).find('th').text(), 
     id: $(this).attr('id') 
    }); 
}); 
console.log(myArray); 

を、私は、どのようにこれらのトラフ反復処理し、値を取得するために把握やGoogle経由で見つけることができませんでした。正しい方向に私を導くことができ[object Object]

誰でも中

for(arr = 0; arr < myArray.length; arr++) { 

    jQuery('<option/>', { 
     value: myArray[arr], 
     text: myArray[arr] 
    }).appendTo('.selectLocation'); 
} 

この結果ははるかに高く評価されるだろう。

答えて

0

問題は、そのオブジェクトの関連プロパティではなく、オブジェクト全体を属性値として設定しているためです。あなたは追加として一緒に

for(arr = 0; arr < myArray.length; arr++){ 
    jQuery('<option/>', { 
    value: myArray[arr].content, 
    text: myArray[arr].id 
    }).appendTo('.selectLocation'); 
} 

がはるかにsuccint HTML文字列を含む配列を作成するために、map()を使用して、コードを作ることができることを注意して、join()それをすべて:

var html = $('#ctl00_ContentPlaceHolderBody_labelTider > div').map(function() { 
    return `<option value="${this.id}">${$(this).find('th').text()}</option>`; 
}).get(); 
$('.selectLocation').append(html.join('')); 
0

使用 これを試してみてくださいmyArrayがオブジェクトの配列なので、値 と value: myArray[arr].idの場合は​​となります。

for(arr = 0; arr < myArray.length; arr++){ 

     jQuery('<option/>', { 
     value: myArray[arr].content, 
     text: myArray[arr].id 
      }).appendTo('.selectLocation'); 
    } 
関連する問題