javascript - 使用 jQuery 删除选择列表的选项返回此错误 "unable to get property length of undefined or null reference"

标签 javascript jquery

我曾经使用这个获取选择列表并删除其选项的 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/

相关文章:

c# - 如何在 jqgrid 中添加新的按钮/图像列

javascript - 使用 Cypress .request 调用 GraphQL 端点

javascript - JQuery 将 <p> 中的部分文本替换为 <img>

javascript - jQuery 在页面重新加载时淡出

javascript - 什么是 JSXIdentifier 以及它与 AST 中的 Identifier 有何不同?

javascript - Jquery UI 调整大小问题

javascript - 在 JavaScript 中显示 2 天之间的实时年、月、周和日

javascript - 使用reduce 对一系列数字求和

javascript - jquery移动按钮文本通过点击在两个文本之间切换

javascript - 引用错误: OpenLayers is not defined in openstreetmap