0

我想弄清楚 LI 中的链接是否有一个类。我该怎么做呢?这是我到目前为止一直在尝试的:

(试图隐藏特定的li)

<a class="filtergallery" id="p" href="#">Portraits</a> <a class="filtergallery" id="n" href="#">Newborn</a> <a class="filtergallery" id="pe" href="#">Pets</a>

<ul class="portfolio-wrap">

<li><a class="p" href="#" title="First Pic"><img src="#" alt="First Pic" /></a></li>
<li><a class="pe" href="#" title="Second Pic"><img src="#" alt="Second Pic" /></a></li>
<li><a class="n" href="#" title="Third Pic"><img src="#" alt="Third Pic" /></a></li>
<li><a class="pe" href="#" title="Fourth Pic"><img src="#" alt="Fourth Pic" /></a></li>

jQuery:

        $('.filtergallery').click(function(event){

        var theid = $(this).attr('id');
        $('.portfolio-wrap li').each(function(){

            if (!hasClass(theid)) { // I need to see if the hyperlink inside the LI has this class...?
                hide();
            }

        });

    })
4

2 回答 2

1

您需要在选择器中实际选择锚标记。看看这个小提琴。此外,您拥有的代码不会基于点击取消隐藏链接(它仅在点击时隐藏,而不是在点击另一个链接时取消隐藏 - 如果这是要求的话)。您可能希望创建一个显示所有链接的函数,并在单击时调用它,然后隐藏适用的链接。

http://jsfiddle.net/UV7nS/

<a class="filtergallery" id="p" href="#">Portraits</a> <a class="filtergallery" id="n" href="#">Newborn</a> <a class="filtergallery" id="pe" href="#">Pets</a>

<ul class="portfolio-wrap">

<li><a class="p" href="#" title="First Pic"><img src="#" alt="First Pic" /></a></li>
<li><a class="pe" href="#" title="Second Pic"><img src="#" alt="Second Pic" /></a></li>
<li><a class="n" href="#" title="Third Pic"><img src="#" alt="Third Pic" /></a></li>
<li><a class="pe" href="#" title="Fourth Pic"><img src="#" alt="Fourth Pic" /></a></li>

​</p>

$('.filtergallery').click(function(event){

        var theid = $(this).attr('id');
        $('.portfolio-wrap li a').each(function(){

            if (!$(this).hasClass(theid)) { // I need to see if the hyperlink inside the LI has this class...?
                $(this).hide();
            }

        });

    })​
于 2012-12-08T03:29:46.880 回答
0
$('.filtergallery').click(function(event){
  $('.portfolio-wrap li:not(:has(a.'+$(this).attr('id')+'))').hide();
}

http://jsfiddle.net/T6GLr/

<3 一个衬垫 :)


编辑:对不起,你想隐藏那些没有它的人。编辑了代码。

于 2012-12-08T03:33:12.337 回答