Поиск с условием

Рейтинг: 0Ответов: 1Опубликовано: 27.01.2015

Подскажите, можно ли с помощью какого-нибудь селектора с использованием .find найти и скрыть блоки с несоответствующим значением в .data().

<div class="block">
    <div data-name="nama1">1</div>
    <div data-name="nama2">2</div>
    <div data-name="nama1">1</div>
    <div data-name="nama4">4</div>
</div>

$(document).on('click', '.class', function() {
    var name = 'nama1';
    $('.block').find('[data-name="НЕ РАВНА nama1"]').hide();
});

Ответы

▲ 2Принят

Для эти целей можно использовать 2 способа в jQuery:

Selector :not() и код будет выглядеть так:

$(document).on('click', '.class-one', function() {
    $('.block').find('div').not('[data-name="nama1"]').hide();
});

Функция .not() и код будет выглядеть так:

$(document).on('click', '.class-two', function() {
    $('.block').find('div:not([data-name="nama1"])').hide();
});

Пример использования