我有一个页面,在添加新选项之前将选择列表的长度设置为0。在IE9之前,这在所有浏览器中都运行良好。在IE9中,我收到错误:DOM异常:NOT_FOUND_ERR(8)。这就是我要做的一切:
var typebox = document.sForm.ePosition;
typebox.options.length = 0;
在兼容模式下正常工作。
答案 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。