如果满足特定条件,如何从该“elems”数组中取消设置当前元素?

var elems = $('input, select, textarea', this);

elems.each(function(){

  if($(this).attr('name') == 'something') {
    // unset `this` from elems ??
  }

});

我在上面做了一个console.log,它似乎没有键...

最佳答案

您可以使用filter()函数,该函数构造一个新的jQuery对象,这些对象是从谓词函数返回true的对象。

var elems = $('input, select, textarea', this);

elems = elems.filter(function(){

  if($(this).attr('name') == 'something') {
    return false;
  }

  return true;

});

这当然可以成为;
var elems = $('input, select, textarea', this).filter(function(){
  if($(this).attr('name') == 'something') {
    return false;
  }

  return true;
});

有关更多信息,请参见 filter() docs

10-06 00:24