jQuery只有当父类是viewContainerTop时才隐藏所有以'row'开头的类,除了'row2'

时间:2009-11-12 01:06:36

标签: javascript jquery

this question...

的变体
<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 个答案:

答案 0 :(得分:5)

如果我理解正确的话,试试这个:

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

>是可选的 - 它排除了以row开头的任何更深层对象的匹配。

这里有一个live example也显示了这一点(点击刷新以查看选择器调暗所需的元素)。

答案 1 :(得分:0)

避免直接问题,但更好的方法可能是创建另一个类,比如“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>