Javascript 对象在一个参数中传递多个参数

Javascript 对象在一个参数中传递多个参数,javascript,jquery,object,for-loop,Javascript,Jquery,Object,For Loop,我试图为某个类的对象传递多个数字。这里是我正在努力创作的作品的预览 group: function(number) { for(var i=0;i<number.length;i++){ groups=number[i]; $('.group')[groups].remove(); } } 这将删除$('.group')[0]$('.group')[1]和$('.group')[2] 我一定是做错了,否则它会正常工作。有人能带我走正确

我试图为某个类的对象传递多个数字。这里是我正在努力创作的作品的预览

group: function(number) {
      for(var i=0;i<number.length;i++){
         groups=number[i];
    $('.group')[groups].remove();
     }
   }
这将删除
$('.group')[0]
$('.group')[1]
$('.group')[2]

我一定是做错了,否则它会正常工作。有人能带我走正确的路吗

感谢Felix King带领我走上正确的道路:

我所要做的就是使用arguments参数

group: function() {
    for(var i=0;i<arguments.length;i++){
        $('.sceditor-group')[arguments[i]].remove();
    }
  }
组:函数(){

for(var i=0;ijQuery对象是包含原始DOM元素的类似数组的对象

因此,
$(…)[0]
是原始DOM元素,而不是jQuery对象

要获取特定元素的jQuery对象,请调用
.eq()



编辑:您也在寻找特殊的
参数
类似数组的对象,您可以通过该对象循环获取传递给函数的所有参数。

您的逻辑存在一个问题,即由于在循环的每次迭代中删除匹配集的元素,因此不会删除initi索引为0、1和2的所有元素(在这种情况下,您将删除原始集合中的元素0、2和4)。此外,您正在调用
$('.group')
对于不是最优的每次迭代,如果您利用缓存变量的优势,然后逐个添加所需的元素,然后就可以对结果集调用remove,则效果会更好

您可以将功能更改为:

group: function(number) {
      var $current = $();
      var $group = $('.group');
      for(var i=0;i<number.length;i++){
         $current = $current.add($group.eq(number[i]));
      }
      $current.remove();
}

上面的代码对一个参数有效,但对多个参数无效,因此我必须是正确路径上的某个参数。no.@EasyBB:你是什么意思?@EasyBB:听起来好像你实际上是在要求
arguments
变量。是的,这就是我的意思,很抱歉,是函数中的参数。基本上,我想让它成为用户可以键入的参数(0,1,2)或者不管是什么数字,它都会删除原始DOM中的相应元素。我会看看这个Felix,无论在什么情况下,在这里看到你总是很高兴,因为你总是引导我走上正确的道路。希望这是正确的道路。@FelixKling如果你想添加一个答案,这样我就可以投票,这是一个巨大的挑战lp!非常感谢!我很高兴我能帮上忙:)如果另一个问题的答案对你有帮助的话,就投票吧。哦,我投票了:D这么简单的事情,我完全看了一遍。我会用这个,所以基本上你是说参数不好,然后你也可以在循环之前选择所有的
.group
元素(而不是在循环中选择它们)。然后你所要做的就是
$current=$current.add($groups[arguments[i]]);
@EasyBB我认为
arguments
很好,请看我的更新答案…@FelixKling确实是一个很好的建议,我只是相应地更新了答案:)
group: function(number) {
      var $current = $();
      var $group = $('.group');
      for(var i=0;i<number.length;i++){
         $current = $current.add($group.eq(number[i]));
      }
      $current.remove();
}
group: function() {
      var $current = $();
      var $group = $('.group');
      for(var i=0;i<arguments.length;i++){
         $current = $current.add($group.eq(arguments[i]));
      }
      $current.remove();
}