1

我已经为每个网格类分配了数据属性,每个值都是从 1 到 64 的不同数字。

我想要它,以便它向具有数据值 =“1”的网格类添加一个“成功”类,我只能在没有特定值的情况下获得它。因此它会找到所有称为数据值的数据属性并添加成功类,但我无法弄清楚如何仅将其添加到数据属性为 1 的类中。

function clickSquare() {
$('.grid').click(function(){

    if ( $('.grid').data('value'))
    {
        $(this).addClass("success");

    }
    else
    {
        $(this).addClass("error");
    }

    });
}


<div data-value="1" class="grid pointer">1</div>

另外,如果我设置一个数组

var values = ['1', '2']

我怎么能这样做,以便 jquery 仅将类附加到具有数组的值的值。希望有道理!

4

1 回答 1

2

您需要this在事件处理程序内部使用来引用单击的grid元素。如果您.grid在处理程序中使用选择器,它将返回grid页面中第一个元素的数据值而不是当前元素

    $('.grid').click(function () {
        if ($(this).data('value') == 1) {
            $(this).addClass("success");

        } else {
            $(this).addClass("error");
        }

    });

演示:小提琴

于 2013-08-30T13:28:42.220 回答