2014-10-29 3 views
0

Я прочитал много сообщений о том, как найти элемент, содержащий конкретный атрибут данных, с определенным классом, но мне нужно найти элемент, содержащий конкретный атрибут данных, который НЕ имеет определенный класс.Jquery найти атрибут данных без класса

Im пытается искать DIV, содержащий класс слайда но не классовую BX-клон, который имеет данные-Bkey = 3 и добавить класс выбрана.

Heres мой код, я попытался теперь работает

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

Но, как вы можете видеть это еще добавляет класс выбранный к BX-клона.

Вот группа дивы в моем коде

<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' пытается - Altho первой попытки, кажется, что он должен работать – tymeJV

+0

Просто тестировал и ваш первый пример работает .. –

+0

@JonathanCrowe Посмотрите на мой http://jsbin.com/xiyayu/1/, и вы увидите, что он все еще выбирает первый (имеет bx-клон) – swg1cor14

ответ

0

Для более четкого ответа для тех, кто смотрит, я обнаружил, что я должен найти элементы с атрибутом, а затем отфильтровать оттуда.

$('.default-slider') 
        .find('.slide[data-bkey=3]') 
        .not('.bx-clone') 
Смежные вопросы