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*:感谢这个页面,我找到了一个修复程序。似乎触发“更改”会迫使 Foundation 重建列表:

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

1 回答 1

1

使用您的代码为我正确添加了它。是 JS fiddle

我使用了下面的数组

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

您是否面临任何具体问题?我使用了 chrome 和 IE9,它似乎工作正常。

于 2013-03-03T20:47:06.927 回答