我有一个页面,它在添加新选项之前将选择列表的长度设置为0。这在所有浏览器中工作良好,直到IE9。在IE9中,我收到错误:DOM异常:NOT_FOUND_ERR(8)。这是我想要做的全部:javascript options.length = 0在IE9中不工作
var typebox = document.sForm.ePosition;
typebox.options.length = 0;
在兼容模式下工作正常。
我有一个页面,它在添加新选项之前将选择列表的长度设置为0。这在所有浏览器中工作良好,直到IE9。在IE9中,我收到错误:DOM异常:NOT_FOUND_ERR(8)。这是我想要做的全部:javascript options.length = 0在IE9中不工作
var typebox = document.sForm.ePosition;
typebox.options.length = 0;
在兼容模式下工作正常。
尝试在控制台执行每一块,并看到您的例外是:
document.sForm
document.sForm.ePosition
document.sForm.ePosition.options
document.sForm.ePosition.options.length
我尝试的选项长度设置为0,并且是非常惊讶的是,它的工作(在Chrome)。在我看来,Array.length
应该是只读属性。我会使用DOM代码删除元素,是这样的:使用jQuery
while (element.hasChildNodes()) {
element.removeChild(element.firstChild);
}
我只是用了同样的问题击中,发现对于我们这些方便的解决方案:
$(selectObject).empty();
我我已经使用jQuery 1.4.4在IE 7-9,FF 10.0和Chrome 18中测试了它。
问题是在纯粹的JavaScript,请提供第一个纯JavaScript回复。由于许多嵌入式解决方案不能使用jquery,所以用户不会对jquery感兴趣。
所以基本上你想添加项目之前删除选择框的所有元素?如果是这样,那不是最好的办法。 – Tejs
好的。给我一些指点。什么是另一种方式去做呢? – Tom
查看@ Seth的回答;你应该通过代码去除元素。 – Tejs