2016-04-12 12 views
1

Wenn ich aa Gruppe von div-Tags haben, die wie folgt aussehen:ausblenden div es sei denn, Klasse 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> 

und ich möchte nur die divs zeigen, dass eine bestimmte # enthalten, so etwas wie:

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

Irgendwelche Ideen, wie dies funktioniert?

Antwort

0

Versuchen:

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

oder

$('.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>

alle Klasse auswählen und verwenden .not() die Klasse ausschließen Sie

0.123.516 zeigen wollen

Beschreibung: Entfernen Sie Elemente aus dem Satz übereinstimmender Elemente.

4

Sie können diese Elemente filtern not und class Selektor

$('.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 Klassennamen beginnend mit #are not valid (, wenn Sie aus dem Weg gehen, um sie überall zu entkommen). Sie sollten besser einen anderen Selektor wie data-* Attribute verwenden. Dann können Sie sie einfach mithilfe eines Attributselektors auswählen. Für zB:

$('.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>

Verwandte Themen