javascript options.length = 0在IE9中不起作用

时间:2011-08-22 19:27:43

标签: javascript internet-explorer-9

我有一个页面,在添加新选项之前将选择列表的长度设置为0。在IE9之前,这在所有浏览器中都运行良好。在IE9中,我收到错误:DOM异常:NOT_FOUND_ERR(8)。这就是我要做的一切:

var typebox = document.sForm.ePosition;
typebox.options.length = 0;

在兼容模式下正常工作。

3 个答案:

答案 0 :(得分:3)

尝试在控制台中执行每个部分,并查看异常的位置:

document.sForm
document.sForm.ePosition
document.sForm.ePosition.options
document.sForm.ePosition.options.length

我尝试将选项的长度设置为0,并且非常惊讶它的效果(在Chrome中)。在我看来,Array.length应该是一个只读属性。我会使用DOM代码来删除元素,如下所示:

while (element.hasChildNodes()) {
    element.removeChild(element.firstChild);
}

答案 1 :(得分:3)

我对同样的问题感到震惊,并为使用jQuery的人们找到了一个方便的解决方案:

$(selectObject).empty();

我已经使用jQuery 1.4.4在IE 7-9,FF 10.0和Chrome 18中对此进行了测试。

答案 2 :(得分:1)

问题是在纯JavaScript中,请首先提供纯javascript回复。用户对jquery不感兴趣,因为许多嵌入式解决方案都不能使用jquery。