2010-04-24 90 views
1

HTML:过滤的内容(jQuery的)

<div class="filter"> 
    <a href="#category-1">category 1</a> 
    <a href="#category-2">category 2</a> 
</div> 
<ul class="items"> 
    <li class="category-1">item 1</li> 
    <li class="category-1">item 2</li> 
    <li class="category-2">item 3</li> 
    <li class="category-2">item 4</li> 
</ul> 

我要的是例如点击“1类”链接应隐藏列表中的所有其他类别的项目。

我知道jQuery的.filter()选择器可以使用,但我不知道如何实现它在我这里的目的。

感谢您的帮助!

回答

3
$('div.filter').delegate('a', 'click', function (event) { 
    $('ul.items li').hide().filter('.' + this.href.slice(this.href.indexOf("#") + 1)).show(); 

    event.preventDefault(); 
}); 
+0

好又短,但我只是试过了,似乎没有工作。 :( – 3zzy 2010-04-24 09:55:31

+0

哎呀,看编辑(证明这个现在工作:http://www.jsfiddle.net/ZKGy8/) – Matt 2010-04-24 09:58:24

+0

完美,谢谢!顺便说一句,为什么委托,而不是简单的.click(功能(),只是好奇?: ) – 3zzy 2010-04-24 10:03:38

0

基本上,你会做这样的:$('.items li').hide(); $('.category-1').show();

可以隐藏所有其他菜单项第一,后者以显示选定的:) 你可以简单地把它放在<a>标签的onclick