2010-05-07 191 views
2

我想完成与jQuery如下:显示元素

当我点击这个链接

<a href="#">Cars</a> 

我想喜欢那些

<div class="product"> 
    <div class="category">Cars</div> 
</div> 
所有div

要做点事情。

你明白了,我有一个包含类别列表的菜单和一个产品列表,每个菜单中都包含一个带有类别名称的div,并且我想让它们隐藏/显示。如果你想隐藏

$("#menu a").click(function() { 
    var value = $(this).html(); 

    $.each($(".category"), function(i, item) { 
    if ($(item).html() == value) { 
     $(item).parent().hide(); 
    } 

    }); 
}); 

回答

8

我不知道如果我完全明白你的问题,但如果你想在div类=“类别”车来车链接被点击的时候出现,按照此该div只是取代$(item).show();与$(item).hide();

+0

是,由于这是想法,但我想隐藏父div(“产品”)而不是“类别”。我设法通过做$(item).parent()。show();而不是$(item).show(); ps。我认为你的代码有一个错字,应该是if($(item).html()== value){而不是if($(item).html == value){ – mike23 2010-05-07 17:21:21

+0

是的,这是一个错字,谢谢你,我更新了我的答案,满足你的最终需求,我帮助你的好事......见到你! :)你能标记我的答案被接受吗? – GerManson 2010-05-07 17:39:41

2

假设:

<a href="#" class="highlight">Cars</a> 

则:

$("a.highlight").click(function() { 
    $("div.category").removeClass("category") 
    .filter(":contains(" + $(this).text() + ")").addClass("highlight"); 
    return false; 
}); 

这里做的事情是category类添加到包含链接的文本任何category DVIS。如果你想这样做,可以修改这个修改父母product div。

它首先从所有category divs中删除类highlight,然后将其添加到需要它的类中。

1

DEMO:http://jsbin.com/ucewo3/11来源:http://jsbin.com/ucewo3/11/edit

$('a').click(function(e) { 
     var search_term = $.trim($(this).text()); //trim text 
     $('.category').each(function() { 
     ($(this).text().search(new RegExp(search_term , 'i')) < 0)//upper & lower 
     ? $(this).parent().hide() : $(this).parent().show(); 
     }); 
    }); 

这保持文本<a>标签中,使搜索到<div class="category">如果<a>文本匹配.category文本显示它的相关.product内容!

注:

  1. 脚本匹配两者大写小写字符

    示例匹配Cars以及carsCARS

  2. 也匹配隔开文字<a> cars </a>以及<a>cars</a><a>cars </a>

  3. 比赛也标记文本<div class="category"><span>cars</span></div>

+0

有趣的脚本!感谢分享 – mike23 2010-05-07 20:35:28