2015-07-06 2 views
0

Я хочу скрыть все элементы, кроме элемента с определенным классом И всех элементов внутри него.Класс JQuery для всех элементов, кроме элемента со специальным классом + детей/детей детей

прямо сейчас им с помощью

$("body").not(".embedded").hide(); 

Но она также скрывает элементы внутри моего .embedded элемента.

Я ценю каждую помощь.

+2

Проблема заключается в том, что вы скрываете «тело», поэтому вы скрываете * все * внутри 'body'. Можете ли вы привести несколько примеров своей структуры HTML и того, чего вы пытаетесь достичь. –

+0

, если ни один из ответов не работал, или вы все еще сталкиваетесь с проблемой, сообщите мне, чтобы я мог помочь – AmmarCSE

ответ

2

Используйте * и space, чтобы указать все прямые/вложенные дети. Кроме того, для первоначального выбора, используйте body *, чтобы указать всех детей до not() фильтрации

$("body *").not(".embedded, .embedded *").hide(); 
+2

не работает, вероятно, .. –

+0

@AnoopJoshi, почему бы и нет? пространство и * указать всех детей – AmmarCSE

+0

Я думаю, что это сработает – Skatch

1

Здесь вы:

$('body :not(".class2")').hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span class="class1">11111</span> 
 
<span class="class2"> 
 
    10 
 
    <span class="class21">11</span> 
 
    <span>12</span></span> 
 
<span class="class1">11111</span>

Надеется, что это помогает.

+0

Думаю, у вас не возник вопрос. Он не хочет скрывать элементы внутри этого класса. – Skatch

+0

@Skatch: 'Но он также скрывает элементы внутри моего .embedded элемента.' Находится в вопросе. – hungndv

+0

Да, он не хочет, чтобы это произошло. Ваш код скрывает 11 и 12. – Skatch

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