用jQuery .filter()的结果做3件不同的事情之一

时间:2019-02-10 06:00:31

标签: jquery

我有类似的东西。根据标志的不同,它将删除SELECT列表中的OPTION元素,或禁用这些OPTION元素。

if (flg===0) {
   // do something
} else if (flg===1) {
   jQuery(...selection...).filter(function() {
      ... bunch of checks here : return true or false ...
   }).attr("disabled","disabled") ;
} else if (flg===2) {
   jQuery(...selection...).filter(function() {
      ... same bunch of checks here as for flg===1 : return true or false ...
   }).remove() ;
}

必须有一种更简单的方法。是否可以做这样的事情:

jQuery(...selection...).filter(function() {
   ... bunch of checks here : return true or false ...
}).function() {
   if (flg===1) { this.attr("disabled","disabled") ;}
   else if (flg===2) { this.remove() ; }  
});

1 个答案:

答案 0 :(得分:0)

您可以将过滤后的项目放在变量中,然后根据标志值执行操作:

let $filtered = jQuery(...selection...).filter(function() {
  // ...bunch of checks here: return true or false...
})

if (flg === 1) {
  $filtered.attr("disabled", "disabled");
} else if (flg === 2) {
  $filtered.remove();
}