我看到了一些与我的问题类似的帖子,并尝试了提供的解决方案,但是我仍然对IE8和IE9以及“ selectedIndex”有疑问。这段代码返回我的变量answerSubmitted为'undefined':

var answerSubmitted = document.getElementById("DropDown-Answers").selectedIndex;


上面的代码在所有其他浏览器中都可以正常运行。根据此处的另一篇文章,我也尝试了以下方法:

var answerSubmitted = document.getElementById("DropDown-Answers").value;


仍然是相同的结果-在其他地方有效,但不适用于IE8或IE9。我已验证IE通过其ID可以识别该特定元素。

这里有什么指导吗?

更多信息:
我通过遍历循环并在option和/ option标签之间添加可变文本来动态创建下拉菜单,如下所示(请注意,“ tempRandom”是每次遍历循环都会更新的随机数):

tempMenuText = tempMenuText + "<option>" + Answers[tempRandom] + "</option>";


结果由选择标记的形式包围,然后我更新了元素的innerHTML。这可以工作并生成一个有效的下拉菜单。但是……也许这是一个线索:当我将菜单元素的innerHTML放入另一个元素进行测试以查看它时,它显示为空。好像IE没看到元素中有HTML,认为它为null,因此'selectedIndex'失败为null。

最佳答案

解决了。原来是我在引用所选项目的ID时出错。一位同事解释说,仅当“ select”标记中的ID正确时,.selectedIndex才有效(至少在IE中有效)。如果不是,则返回null,这就是最初发生的情况。现在一切都很好。感谢您的建议。

关于javascript - IE中的selectedIndex未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13256505/

10-12 06:51