以下 js 在 FF2 中工作正常,但在 IE6 中,下拉菜单始终选择早期的一个选项,IE -> testix2 与 FF2 -> testix3 如果我们在脚本中的某处添加一个alertBox,它在IE6中也可以正常工作。 但是没有alertBox如何解决这个问题呢?
蒂亚
<script language="JavaScript" type="text/javascript">
<!--
function Entry(value, name, selected) {
this.value = value;
this.name = name;
this.selected = selected;
}
//-->
</script>
<select id="selSeaShells">
</select>
<script language="JavaScript" type="text/javascript">
<!--
var productCategoryLevel2 = new Array();
productCategoryLevel2.push(new Entry('Hallo1', 'testix1', false));
productCategoryLevel2.push(new Entry('Hallo2', 'testix2', false));
productCategoryLevel2.push(new Entry('Hallo3', 'testix3', true));
var i = 0;
for (i in productCategoryLevel2) {
var optL2 = document.createElement('option');
optL2.selected = true;
optL2.text = productCategoryLevel2[i].name;
optL2.value = productCategoryLevel2[i].value;
if (productCategoryLevel2[i].selected == true) {
productCategoryLevel2[i].selected = true;
optL2.selected = true;
} else {
optL2.selected = false;
}
try {
document.getElementById("selSeaShells").add(optL2, null);
} catch(ex3) {
document.getElementById("selSeaShells").add(optL2);
}
}
//-->
</script>
最佳答案
我不完全确定为什么你的示例不起作用,但如果你这样做(即在
var i = 0;
for (i in productCategoryLevel2) {
var optL2 = document.createElement('option');
optL2.text = productCategoryLevel2[i].name;
optL2.value = productCategoryLevel2[i].value;
try {
document.getElementById("selSeaShells").add(optL2, null);
} catch(ex3) {
document.getElementById("selSeaShells").add(optL2);
}
if (productCategoryLevel2[i].selected == true) {
document.getElementById("selSeaShells").selectedIndex = i;
}
}
关于javascript 选项选择 IE6 与 FF2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/386094/