我从API获取一个巨大的疯狂JSON,并且我正在努力将它放入选择框中。到目前为止,我有这样的代码:使用.each填充选择元素
$('#gaua').live('change', function() {
var dropDownValue = $(this).val();
$("#gaCell").html("<select>");
$.each(gaAccount, function(k, v) {
$.each(v, function(k1, v1) {
console.log("k1 "+k1+" "+dropDownValue);
if(k1 == dropDownValue) {
console.log("k1 is equal to dropDownValue");
$.each(v1, function(k2, v2) {
console.log("v1 "+v1+" k2 "+k2+" v2 "+v2);
$("#gaCell").append("<option value='"+v2+"'>"+k2+"</option>");
});
}
});
});
$("#gaCell").append("</select>");
console.log($("#gaCell").html());
});
当我看到我看到这个控制台:
<select></select><option value="4434">Option 1</option><option value="43333380">Option 2</option><option value="3233223">Option 3</option> ...
为什么<select></select>
最初被追加?是否应设置开始标记,然后添加选项值,最后是关闭的选择标记?
该代码看起来很糟糕,但我需要得到这个工作之前,我清理它正常。任何建议真的会有所帮助,谢谢!
你为什么要为改变事件直播?改变事件不会在IE中冒泡... –
感谢您的评论。我使用的是直播,因为此下拉菜单是在页面加载并且用户执行操作后添加的。我想我会在DOM加载后添加某些东西时出于习惯。没有必要吗? –
问题是,生活取决于事件冒泡和改变不在IE中泡。在IE中试用它,我认为它不起作用。 –