jquery - 选择具有特定数据属性值的类

时间:2016-10-30 06:55:57

标签: jquery

现在有点愚蠢的时刻,无法弄清楚为什么这不起作用。自从用jquery做任何事以来已经有一段时间了。

var owl = $('.owl-main');
var button = $('.owl-button');

owl.owlCarousel({
    dots:false,
    margin:15,
    nav:true,
    navText: [
        '<span class="o-page">Prev</span>',
        '<span class="o-page">Next</span>'
    ],
    responsive:{
        0:{
            items:1
        }
    },
    onChanged: callback
})

function callback(event) {
    console.log(event.item.index);
    console.log(button);

    button.removeClass('active');
    //$(".owl-button[data-id='"+event.item.index+"']").addClass('active');
    button.find("[data-id='" + event.item.index + "']").addClass('active');
}

我的问题是button.find("[data-id='" + event.item.index + "']").addClass('active');没有添加&#39;有效的&#39;除了上面注释掉的代码,$(".owl-button[data-id='"+event.item.index+"']").addClass('active');完全正常。

buttonevent.item.index正在正确报告,为什么这条特定的行对我没有任何作用?

1 个答案:

答案 0 :(得分:1)

问题是find() ..你正在以错误的方式使用它..它实际上将使用给定属性搜索按钮中的子元素。但你想要的是找到一个具有给定属性的按钮。

  • 评论代码就是您必须这样做的方式。

修改:如果您想使用存储的按钮本身数组来实现此功能,那么您可以使用 filter()代替find < / p>

以下是参考http://api.jquery.com/filter/

button.filter("[data-id='" + event.item.index + "']").addClass('active');