jQuery - 选择所有非匹配?

时间:2010-11-05 16:32:27

标签: jquery

我有一个这样的清单:

<div class="commentList>
  <div name="version-1>stuff</div>
  <div name="version-1>stuff</div>
  <div name="version-1>stuff</div>
  <div name="version-2>stuff</div>
  <div name="version-3>stuff</div>
  <div name="version-3>stuff</div>
</div>

我想要一个jquery行,给定版本#,如3,将更新.CommentList只显示div的名称=“version-3”,其他将被隐藏?

可能没有身份证?

3 个答案:

答案 0 :(得分:5)

我在这里使用class因为name不是有效属性,所以你可以这样做:

$(".commentList > div").hide();        //hide them all
$(".commentlist > .version-3").show(); //show what you want

如果必须使用名称,第二行将如下所示:

$(".commentlist > div[name='version-3']").show();

但是......在这里和一个班级有效。

答案 1 :(得分:2)

使用not selector会不是一个坏主意?

$(".commentList").children().not("div[name='version-3']").hide();

虽然首先隐藏它们的想法并不是一个糟糕的dea:)

答案 2 :(得分:1)

$('.commentList > div[name!=version-'+num+']').hide();

但当然它不会切换任何可能已被隐藏的div。 @Nick有一个很好的答案。