jQuery隐藏某些类型的列表项

问题描述:

我有一个小图片库的东西,拿着一堆不同类型的图像。jQuery隐藏某些类型的列表项

我想要显示/隐藏不同类型图像的选项,以及显示所有类型的选项。什么是最好的方法来做到这一点?

这是它的HTML。

<div id="categories"> 
    <a id="category_all" href="#all"><img src="all.png" /></a> 
    <a id="category_type1" href="#type1"><img src="type1.png" /></a> 
    <a id="category_type2" href="#type2"><img src="type2.png" /></a> 
</div> 
<div id="list"> 
    <ul class="images"> 
    <li class="class1"><img src="image.jpg"/></li> 
    <li class="class2"><img src="image.jpg"/></li> 
    <li class="class2"><img src="image.jpg"/></li> 
    <li class="class1"><img src="image.jpg"/></li> 
    <li class="class2"><img src="image.jpg"/></li> 
    <li class="class1"><img src="image.jpg"/></li> 
    <li class="class1"><img src="image.jpg"/></li> 
    <li class="class1"><img src="image.jpg"/></li> 
    <li class="class1"><img src="image.jpg"/></li> 
    <li class="class1"><img src="image.jpg"/></li> 
    <li class="class1"><img src="image.jpg"/></li> 
    </ul> 
</div> 

我想这将是有意义的追加独立“秀”与显示器/“隐藏”类:块和显示:没有,但不知道我怎么应该去关于这个问题,我是新来的jQuery。

感谢

+0

我真的不知道为什么你的标记语法突出显示是关闭的,这是一个很烦人的:) – 2010-12-11 11:16:40

$('#category_all').click(function() { 
    $('.class1,.class2').show(); 
}); 

$('#category_type1').click(function() { 
    $('.class1').show(); 
    $('.class2').hide(); 
}); 

$('#category_type2').click(function() { 
    $('.class2').show(); 
    $('.class1').hide(); 
}); 
+0

我很确定他想隐藏那个类名:) – 2010-12-11 10:47:13

+0

@Nick - 是啊,我只看到'class1'当我扫描它时:| – sje397 2010-12-11 10:51:55

+0

谢谢,工作很棒! – mwnz 2010-12-11 10:59:01

您可以用数据属性做到这一点很干净,像这样:

<div id="categories"> 
    <a data-show="*" href="#"><img src="all.png" /></a> 
    <a data-show=".class1" href="#"><img src="type1.png" /></a> 
    <a data-show=".class2" href="#"><img src="type2.png" /></a> 
</div> 

然后使用一个单击处理程序,例如:

$("#categories a").click(function(e) { 
    $("#list .images li").hide().filter($(this).data("show")).show();  
    e.preventDefault(); //prevent page scrolling to top 
}); 

这是做什么是点击它隐藏所有<li>元素,然后使用.filter()data-show属性中的选择器匹配并显示这些属性的属性。当你想添加另一种类型时,只需在类别下添加一个新链接,并在其中添加匹配的选择器,然后全部设置好。

+0

非常整洁...... – sje397 2010-12-11 10:53:23