Jquery在没有类的情况下查找数据属性

时间:2014-10-29 20:57:35

标签: jquery

我已经阅读了很多关于如何找到包含特定类的特定数据属性的元素的帖子,但我需要找到一个包含特定数据属性但没有特定类的元素。

我正在尝试查找包含幻灯片类的div但不包含 data-bkey = 3的 bx-clone 类并添加选择

继承我的代码我试过 NOW WORKS

var selected = $('.default-slider').find('.slide[data-bkey=3]').not(".bx-clone").addClass('selected');

但正如您所看到的,它仍然会将选定类添加到 bx-clone

以下是我的代码中的div组

<div class="default-slider">
<div class="slide selected bx-clone" data-bkey="3" style="float: none; list-style: none; position: relative; width: 238px; margin-bottom: 10px;">
    <img src="/images/buttons/c2a-button3.png" height="50px">
</div>
<div class="slide" data-bkey="1" style="float: none; list-style: none; position: relative; width: 238px; margin-bottom: 10px;">
    <img src="/images/buttons/c2a-button1.jpg" height="50px">
</div>
<div class="slide" data-bkey="2" style="float: none; list-style: none; position: relative; width: 238px; margin-bottom: 10px;">
    <img src="/images/buttons/c2a-button2.png" height="50px">
</div>
<div class="slide selected" data-bkey="3" style="float: none; list-style: none; position: relative; width: 238px; margin-bottom: 10px;">
    <img src="/images/buttons/c2a-button3.png" height="50px">
</div>                                              
<div class="slide bx-clone" data-bkey="1" style="float: none; list-style: none; position: relative; width: 238px; margin-bottom: 10px;">
    <img src="/images/buttons/c2a-button1.jpg" height="50px">
</div>
</div>

我也试过了:不起作用,仍然得到相同的结果。

var selected = $('.default-slider').find('.slide[data-bkey=3]:not(bx-clone)').addClass('selected');

var selected = $('.default-slider').find('.slide:not(.bx-clone)[data-bkey=3]').addClass('selected');

看到一个JSbin看到实际行动: http://jsbin.com/xiyayu/1/edit?js,output

1 个答案:

答案 0 :(得分:0)

对于那些看起来更清楚的答案,我发现我必须找到属性为FIRST的元素,然后从那里过滤掉。

$('.default-slider')
                    .find('.slide[data-bkey=3]')
                    .not('.bx-clone')