【发布时间】:2014-06-11 15:06:41
【问题描述】:
我有以下 html 结构,并试图通过 javascript 在 optgroups 中添加选项元素。我也在使用 jquery 移动框架。
html如下:
<form>
<div class="ui-field-contain">
<label for="selectID">Look-up</label>
<select name="select-native-4" id="selectID">
<option>Choose...</option>
<optgroup label="G1" id="group1">
</optgroup>
<optgroup label="G2" id="group2">
</optgroup>
<optgroup label="G3" id="group3">
</optgroup>
</select>
</div>
</form>
javascript如下。
for( var i = 0; i < array.length; i++){
var item = array[i];
var $option = $('<option> ' + item.name + ' </option>');
$option.prop('value', item.memb);
console.log(item.name);
var tp = -1;
switch(item.name){
case 'group1' :
tp = 1; break;
case 'group2' :
tp = 2; break;
case 'group3' :
tp = 3; break;
}
console.log(tp);
//$("#selectID :nth-child(tp)").append($option);
$("#selectID").eq(tp).append($option);
}
$('#selectID').selectmenu('refresh');
}
我很困惑为什么 .eq(n) 没有将 $option 对象附加到 #selectID 的第 n 个孩子,这将是一个 optgroup。感谢您的帮助!
【问题讨论】:
-
发布整个脚本或小提琴。
-
您为什么希望
.eq(n)添加到孩子?.eq(n)选择与选择器匹配的nth元素。 -
如果你想要第n个孩子,请使用
.children().eq(n)。 -
会命中选项,而不是 optgroup 元素。请参阅下面的解决方案。
-
我会帮忙,但你提出问题而不选择答案。
标签: javascript jquery dom