2014-10-29 17 views
0

我已經閱讀了很多關於如何找到包含特定數據屬性和特定類的元素的帖子,但是我需要找到一個包含沒有特定類的特定數據屬性的元素。Jquery找到沒有類的數據屬性

林試圖尋找包含類滑動但NOT類BX-克隆具有數據BKEY = 3 div和添加選定類

繼承人我的代碼,我試過現在工作

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

但是,正如你可以看到它仍然增加了選擇BX-克隆

這裏是該集團的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

':沒有(.bx克隆)' - 缺少'.'在':not'嘗試 - 本書雖然是你的第一次嘗試似乎像它應該工作 – tymeJV 2014-10-29 20:59:08

+0

只是測試它和你的第一個例子工程.. – 2014-10-29 21:02:07

+0

@JonathanCrowe看看我的http://jsbin.com/xiyayu/1/,你會看到它仍然選擇第一個(有bx克隆) – swg1cor14 2014-10-29 21:05:07

回答

0

對於那些尋找一個更清晰的答案,我發現我必須找到與該屬性的元素,然後再從那裏過濾掉。

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