如何使用jQuery隐藏除最后一个(按类)之外的所有元素

时间:2015-03-03 09:42:07

标签: jquery css

我有一个看起来像这样的菜单(以1个列表项为例):

<ul class="dyn makeLink" style="display: block;">
    <li id="licategory_1">
        <a href="/nfl-lines" title="" class="linkItem">
            <strong>NFL</strong>
        </a>
        <span class="expCollPos" >
            <span class="collapsed"></span>
        </span>
        <span class="expCollPos linkItem" >
            <span class="collapsed"></span>
        </span>
        <span class="expCollPos" >
            <span class="collapsed"></span>
        </span>
    </li>


    <li id="licategory_2">
    ... 
    </li>

</ul>

由于一些奇怪的原因,3个跨度(.expCollPos),两个第一个与我无关,我试图仅使用jQuery删除它们。

我尝试过使用: $('.dyn li span.expCollPos:last-child').css("display", "none");

和其他几个 - 但它只删除了所有.expCollPos类。

我做错了吗?

(我有一个代码,我必须编辑它看起来很可怕!javascript函数不清楚,CSS有这么多&#34;!important&#34;我无法找到什么。)

4 个答案:

答案 0 :(得分:5)

你想要隐藏除最后一个之外的所有内容,所以你必须说不是最后一个

$('.dyn li').find('span.expCollPos:not(:last)').hide();

答案 1 :(得分:2)

尝试

$(".dyn li span.expCollPos").slice(-1).hide();

&#13;
&#13;
$(".dyn li span.expCollPos").slice(-1).hide()
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="dyn makeLink" style="display: block;">
    <li id="licategory_1">
        <a href="/nfl-lines" title="" class="linkItem">
            <strong>NFL</strong>
        </a>
        <span class="expCollPos" >
            <span class="collapsed">1</span>
        </span>
        <span class="expCollPos linkItem" >
            <span class="collapsed">2</span>
        </span>
        <span class="expCollPos" >
            <span class="collapsed">3</span>
        </span>
    </li>


    <li id="licategory_2">

    </li>

</ul>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

使用此

$('#licategory_1 span.expCollPos').eq(2).show();

答案 3 :(得分:0)

$('body').find('.teads-inread:not(:last)').hide();

https://jsfiddle.net/mbrasil/n0reckgv/