Jquery选择具有相同类名的一组元素中的clicked元素

也许你们可以帮我解决这个问题,过去30分钟我一直在努力。

假设我有四个具有相同类的元素。

hi
hey
yo
What's up

如何选择点击的那个?

我能够让它像这样工作:

 $('.test').click(function() { $(this).toggleClass("btn-danger btn-success"); }); 

但是,我需要在ajax调用之后不点击成功而触发它,所以我需要能够做这样的事情(尝试失败):

 $('.test', this).toggleClass("btn-danger btn-success"); // This did not work $(this).find('.test').toggleClass("btn-danger btn-success"); // Also did not work 

有什么建议? 非常感谢!!

听起来像是在单击其中一个元素时进行了ajax调用,但是您需要根据单击的元素在ajax调用中传递不同的值。 您可以执行以下操作,而不是使用“onclick”属性:

HTML:

 
hi
hey
yo
What's up

JavaScript的:

 $('.test').click(function() { var $div = $(this); $.ajax(url, { data: { param1: $div.attr('data-param1'), param2: $div.attr('data-param2') }, success: function() { $div.toggleClass("btn-danger btn-success"); } }); }); 

当然,您可以使用PHP变量设置data-属性的值。

使用触发function….

所以附上点击处理程序……

 $('.test').on('click', function() { $(this).toggleClass("btn-danger btn-success"); }); 

然后在你的ajax成功函数….触发点击…

 $('.test').trigger('click'); 

但确定触发哪一个将成为诀窍。

你怎么知道哪一个点击,基于ajax ????

如果您只是在进行ajax调用,根据您所采用的链接,那么解决方案就更简单了…….因为您已经知道点击了哪个链接

 $('.test').click(function() { var link = $(this); $.ajax(url, { success: function() { link.toggleClass("btn-danger btn-success"); } }); }); 

是否无法为每个ID提供一个ID,以便您可以直接访问它们?

如果您在回调函数上触发它们,您可以创建对变量中单击的div的引用吗?

  var clicked; $('.test').click(function(){ clicked = $(this); }); 

然后在你的ajax响应中:

  clicked.toggleClass("btn-danger btn-success"); 
  $('.test').click(function(){ clicked = $(this); }); 

上面的代码返回单个项的数组。 所以使用索引0来选择它如下:

 $('.test').click(function(){ clicked = $(this)[0]; });