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

use*_*120 10 jquery class this selector

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

假设我有四个同一类的元素.

<div class="test">hi</div>
<div class="test">hey</div>
<div class="test">yo</div>
<div class="test">What's up</div>
Run Code Online (Sandbox Code Playgroud)

如何选择点击的那个?

我能够让它像这样工作:

$('.test').click(function() {
    $(this).toggleClass("btn-danger btn-success");
});
Run Code Online (Sandbox Code Playgroud)

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

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

$(this).find('.test').toggleClass("btn-danger btn-success");  // Also did not work
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*n S 4

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

HTML:

<div class="test" data-param1="value1a" data-param2="value2a">hi</div>
<div class="test" data-param1="value1b" data-param2="value2b">hey</div>
<div class="test" data-param1="value1c" data-param2="value2c">yo</div>
<div class="test" data-param1="value1d" data-param2="value2d">What's up</div>
Run Code Online (Sandbox Code Playgroud)

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");
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

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