我正在尝试使用JavaScript将一些<options>
附加到<optgroup>
。我的optgroup是在item.Level == 1
创建的,然后在该组内,我也想包含我的第二级项目。我对JS并不擅长,所以如果有人可以解决一些问题,那将会有很多帮助。
if (item.level == 1) {
$("#chosen-select").append(
$("<optgroup label='" + item.agencyName + "'> " + item.agencyName + ));
} else if (item.level === 2) {
$("#chosen-select").append(
$("<option></option>")
.text('\xA0\xA0\xA0\xA0\xA0' + item.agencyName)
.val(item.id)
);
答案 0 :(得分:0)
这里你需要的是基本上选择你要附加的<optgroup>
:
} else if (item.level === 2) {
$("#chosen-select > optgroup").append( // appending to the optgroup
$("<option></option>")... // etc.
);
} // <-- don't forget to close the else if here
P.S。第3行有语法错误,最后有未关闭的else if
。
答案 1 :(得分:0)
我不确定你的循环是什么样的,但你可以尝试这样的事情:
var $select = $('#chosen-select'),
$optgroup;
for (var i = 0, l = items.length; i < l; i++) {
var item = items[i];
if (item.level == 1) {
$optgroup = $('<optgroup/>');
$optgroup.attr('label', item.agencyName)
$optgroup.appendTo($select);
} else if (item.level == 2) {
$optgroup.append(
$('<option/>')
.attr('value', item.id)
.text('\xA0\xA0\xA0\xA0\xA0' + item.agencyName);
);
}
}
这会将最后一级1 <optgroup>
存储在一个变量中,以便为所有二级项目重复使用。如果在任何1级项目之前有任何2级项目,这将无效。