我刚想出了一个奇怪的故障。在我看来,这是一个错误。我想听听你的想法。动态添加的选项消失,如果多次添加
不久,我将在这里描述的问题:
可以说,我需要3个选择使用相同的选项,我在HTML创建他们是这样的:
<select id="x1" class="A"></select>
<select id="x2" class="A"></select>
<select id="y1" class="B"></select>
然后我想填充他们与选择使用jQuery。我不喜欢这样:
var options = [];
for(var i=0; i<5; i++){
options.push($("<option value='" + i + "'>" + i + "</option>"));
}
$(".A").append(options);
$(".B").append(options);
有2个元素A
类并用B
类在本例中1个元素。调用$(".A").append(options)
后,它按预期完成所有工作 - 它将这些选项添加到类A
中进行选择。但是,在调用$(".B").append(options)
之后,它将这些选项添加到类B
的元素,但类的最后一个元素的选项消失了!这似乎很奇怪!
的影响是一样的,如果我加入他们这样的:
for(var i=0; i<5; i++){
var option = $("<option value='" + i + "'>" + i + "</option>");
$(".A").append(option);
$(".B").append(option);
}
我结束了使用$(".A, .B").append(options)
添加到所有选择的选项,但是这并看起来不正确。
你的想法是什么?
是啊,我想过克隆它们。有点棘手的事实是,这些选项是在一个通用的JS数组中,我将不得不再次循环它们以创建克隆。 – Wish
你是对的 - 我错过了你正在创建一个jQuery对象数组。你可以修改这个来建立一个单一的字符串,这样既可以完全避免这个问题,而且可以更快。查看我的更新。 –