jQuery, чтобы скрыть все классы, которые начинаются с 'row', кроме 'row2', только когда родительский класс - viewContainerTop - PullRequest
2 голосов
/ 12 ноября 2009

Вариация этот вопрос ...

<div id="viewContainerTop">
  <div class="row1"></div>
  <div class="NotRow1"></div>
  <div class="row2"></div>
  <div class="row2"></div>
  <div class="row2"></div>
  <div class="row3 first"></div>
  <div class="donthideme"></div>
  <div class="row4"></div>
  <div class="row5"></div>
</div>

Ответы [ 2 ]

5 голосов
/ 12 ноября 2009

Если я правильно вас понимаю, попробуйте следующее:

$('#viewContainerTop > [class^=row]').not('.row2').hide();

> является необязательным - оно исключает сопоставление любых более глубоких объектов, начинающихся с row.

живой пример , который также показывает это (нажмите обновить, чтобы увидеть, что селектор затемняет нужные элементы).

0 голосов
/ 12 ноября 2009

Избегайте прямого вопроса, но лучшим подходом может быть создание другого класса, скажем «canhide», и присоединение его к элементам div, на которые вы хотите нацелиться. Вы не должны делать совпадения с частичными именами классов.

<div id="viewContainerTop">
  <div class="canhide row1"></div>
  <div class="NotRow1"></div>
  <div class="row2"></div>
  <div class="row2"></div>
  <div class="row2"></div>
  <div class="canhide row3 first"></div>
  <div class="donthideme"></div>
  <div class="canhide row4"></div>
  <div class="canhide row5"></div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...