0

ここで私は明らかに何か間違ったことをしていますが、それを理解しようとして頭を悩ませています。

したがって、次のように<select></select>定義されています。

<select name="entryspeaker" id="entryspeaker">
    <option value="">No associated speaker</option>
</select>

次に、私のスクリプトでは、「スピーカー」オブジェクトの配列を定義しています。私は実行して、それらをリストに追加しようとしています (ここに示されているように)。

for ( speakerIdx in speakerlist ) {
    var speaker = speakerlist[speakerIdx];
    var newOption = $('<option></option>').val(speaker.__id__).html(speaker.name);
    $('#entryspeaker').append( newOption );
    console.log(speaker);
    console.log(newOption);
}

ログの値を確認したspeakerところ、正しいオブジェクトを取得していることは間違いありません。また、newOption値に有効な<option>オブジェクトが含まれていることも確認しましたが、リストに正しく追加されていません。

誰かがここで私の愚かさを指摘するのを助けることができますか?

前もって感謝します!


編集: これは、このサイトが Zurb Foundation のカスタム スタイルのドロップ リストを使用しているためのようです。ロード時に元のリストをコピーしているように見えるため、新しいアイテムはコピーされたリストに追加されていません。私はそれを調査していますが、それは確かにここで私の問題の原因であるに違いありません.


編集 2* :このページのおかげで修正が見つかりました。「変更」をトリガーすると、財団はリストを再構築するように強制されるようです:

$('#entryspeaker').change();
4

1 に答える 1

1

それはあなたのコードで私のために正しく追加されています..これJSフィドルです

以下の配列を使用しました

var speakerlist=[{id:"1", name:"Rsquare"}, {id:"2", name:"Adi"}, {id:"3", name:"Anuj"}];

特定の問題に直面していますか?Chrome と IE9 を使用しましたが、問題なく動作しているようです。

于 2013-03-03T20:47:06.927 に答える