我曾经使用这个获取选择列表并删除其选项的 java 脚本:-
var selectobject = document.getElementById("OrderAssignToApprover_9002e96d-1276-4355-9a2a-0c565d8079db_$DropDownChoice");
for (var i=selectobject.options.length-1; i>=0; i--)
{
selectobject.remove(i);//remove current usernames
}
而且它曾经运作良好。现在,我没有通过它的 id(有点长)来选择元素,而是选择使用开头来选择元素,如下所示:-
var selectobject = $('[id^="OrderAssignToApprover"]');
for (var i=selectobject.options.length-1; i>=0; i--)
{
selectobject.remove(i);//remove current usernames
}
但我开始收到这些错误:-
在 IE 上:-
unable to get property length of undefined or null reference
在 FireFox 上:-
exceptionTypeError: selectobject.options is undefined
当我从 document.getElementById()
更改选择器时,任何人都可以建议导致错误的原因至 $('[id^="OrderAssignToApprover"]')
??
最佳答案
在第二种情况下,您必须将 jquery 对象转换为 js 对象:
var selectobject = $('[id^="OrderAssignToApprover"]');
selectobject.each(function(index,element){
for (var i=element.options.length-1; i>=0; i--){
element.remove(i);
}
})
或者如果您的选择器只有一个元素:
var selectobject = $('[id^="OrderAssignToApprover"]')[0];
for (var i=selectobject.options.length-1; i>=0; i--){
selectobject.remove(i);
}
但为了避免其他问题...首先检查您的选择对象长度是否大于零:
console.log($('[id^="OrderAssignToApprover"]').length)
关于javascript - 使用 jQuery 删除选择列表的选项返回此错误 "unable to get property length of undefined or null reference",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48602891/