将jquery选择器存储到数组中?

时间:2015-04-12 00:56:17

标签: javascript jquery arrays

$('.add').click(function(){
  runFunction();
  //loop
  //i++
});

$('.deduct').click(function(){
  runFunction();
  //loop
  //i--
});

我有上面的代码,在两个click()函数中,只有轻微的差异,只是循环中不同的增量和减量。我只想把选择器存放到一个数组中,这可能吗?

var arr = ['$('.deduct')', '$('.add')']` ??

3 个答案:

答案 0 :(得分:0)

实际上,你已经关闭了;试试......

var arr = [$(".deduct"), $(".add")];

这会将每个jQuery对象放入数组中,引用为arr[0]arr[1]

答案 1 :(得分:0)

您可以使用多个处理程序:

$('.add, .deduct').on('click', function(){
  runFunction();
  //loop
});

$('.add').on('click', function(){
  //i++
});

$('.deduct').on('click', function(){
  //i--
});

$('.add, .deduct').on('click', function(){
  runFunction();
  //loop
  if($(this).hasClass('add'))
     //i ++
  else
     //i --
});

答案 2 :(得分:0)

你可以像arvin建议的那样使用多重选择器。

$('.add .deduct').on('click',function(e){
    runfunction();
    if(e.currentTarget() // is add) i++
    if(e.currentTarget() // is deduct) i--
})