4

我在 ie 10 中遇到上述错误,请给我一个建议。它工作正常

function getSelectedIndex(element, value) {
    var selectedIndex = 0;
    for(i = 0; i < element.options.length; i++) {
        if(element.options[i].value == value) {
            selectedIndex = i;
            break;
        }
    }
    return selectedIndex;
}

element.options.length 给出了 Unable to get property 'options' of undefined or null reference。请给我一个示例代码。编辑:当我在兼容模式下使用 IE11 时它对我有用,但是当我删除它并在正常模式下运行它时,出现了上述问题。

4

2 回答 2

2

使用elements.options.indexOf(value)(假设element已定义,但似乎未定义)。顺便说一句,如果第一个元素匹配根本不匹配,您当前的设计将返回零。如果您真的想编写自己的版本,最好在不匹配的情况下indexOf返回。-1

于 2014-12-05T03:29:08.377 回答
0

实际上,该消息为您提供了您需要知道的内容。您正在尝试读取没有值的东西的属性,这里是“element”或“element.options”,请在函数调用之前检查它们的设置位置。对于 IE10 是严格的,不支持使用 element.options.length

相反,您应该使用:

document.getElementById("optionsID").value

我希望这有帮助

于 2013-09-25T10:16:42.597 回答