2016-04-12 2 views
1

Если у меня есть аа группа дивы, которые выглядят так:Скрыть DIV, если класс не является X

<div class="entry-container #sts01"></div> 
<div class="entry-container"></div> 
<div class="entry-container #sts01"></div> 
<div class="entry-container #sts02"></div> 
<div class="entry-container"></div> 
<div class="entry-container #sts03"></div> 
<div class="entry-container"></div> 
<div class="entry-container #sts02"></div> 

, и я только хочу показать дивы, которые содержат определенное #, что-то вроде:

$('.entry-container:contains(:not("#sts01"))').hide(); 

Любые идеи о том, как сделать эту работу?

ответ

0

Try:

$('.entry-container').hide();//hide all 
$('div[class^="#sts"]').show();//show only the elements whos class start(^) with `#sts` 

или

$('.entry-container').not('[class^="#sts"]').hide(); 
0

$('.entry-container').not('.sts01').hide();//hide all execpt class sts01
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="entry-container sts01">1</div> 
 
<div class="entry-container">2</div> 
 
<div class="entry-container sts01">3</div> 
 
<div class="entry-container sts02">4</div> 
 
<div class="entry-container">5</div> 
 
<div class="entry-container sts03">6</div> 
 
<div class="entry-container">7</div> 
 
<div class="entry-container sts02">8</div>

Выбрать все класс и использовать .not() исключить класс, который вы хотите показать

Описание: Удалить элементы из набора согласованных элементов.

4

Вы можете фильтровать эти элементы с помощью not и class селектор

$('.entry-container').hide().filter('.\\#sts01').show(); //you need to escape the `#` in the class name
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="entry-container #sts01">1</div> 
 
<div class="entry-container">0</div> 
 
<div class="entry-container #sts01">1</div> 
 
<div class="entry-container #sts02">2</div> 
 
<div class="entry-container">0</div> 
 
<div class="entry-container #sts03">3</div> 
 
<div class="entry-container">0</div> 
 
<div class="entry-container #sts02">2</div>

0

имена классов CSS, начиная с #are not valid (, если вы не выходите из пути, чтобы избежать их везде). Вам лучше использовать какой-либо другой селектор, например, атрибуты data-*. Затем вы можете легко выбрать их с помощью селектора атрибутов. Для например:

$('.entry-container:not([data-value]').hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="entry-container" data-value="#sts01"></div> 
 
<div class="entry-container"></div> 
 
<div class="entry-container" data-value="#sts02"></div>

Смежные вопросы