大家好,最近我遇到了一个问题。我无法使用下面的代码将选项添加到选择框中,也无法在IE中清除它们。下面的代码有什么问题吗?
blockSelect.innerHTML = '<option></option>';
for (var i in data.DATA) {
console.log(data);
var option = dojo.create('option', { value: data.DATA[i][0] }, blockSelect);
option.label = data.DATA[i][0];
}我真的不知道为什么这在IE中不起作用。
谢谢
发布于 2010-12-08 09:59:48
在我的生活中从来没有写过dojo,但这里是一个尝试。我有几点建议
blockSelect.innerHTML = '<option></option>';
console.log(data);
for (var i in data.DATA) {
var item = data.DATA[i];
dojo.create('option',
{
value: item[0],
label: item[0], // do you mean to set the innerHTML?
innerHTML: item[0]
},
blockSelect);
}发布于 2010-12-08 17:26:02
使用选择列表的options属性。可以通过将length属性设置为0来清除它,还可以通过将新的Option对象分配为options集合的最后一个元素来添加新选项:
var opts = blockSelect.options;
opts.length = 0;
for (var i in data.DATA) {
console.log(data);
opts[opts.length] = new Option(data.DATA[i][0], data.DATA[i][0]);
}这在所有主流浏览器中都有效。
发布于 2010-12-08 10:16:09
我不确定如何使用Dojo回答您的问题,但我怀疑您的问题可能与使用innerHTML和option标签的IE中长期存在的问题有关。我认为解决方案是将选项元素附加到父元素,而不是尝试设置innerHTML。
https://stackoverflow.com/questions/4383347
复制相似问题