删除/隐藏DIV中的li href链接

时间:2011-01-25 21:17:54

标签: jquery html css

我需要在下拉菜单中隐藏/删除链接(team.aspx),这将在稍后添加回来。继承我的代码:

<div id="nav_menu">
<ul id="nav">
    <li class="current"><a href="home.aspx">HOME</a> </li>
    <li><a href="iam.aspx">I AM A...</a>
    <ul>
    <li><a href="whoweare.aspx">WHO WE ARE</a>
    <ul>
        <li><a href="profile.aspx">OUR EXPERIENCE</a> </li>
        <li><a href="team.aspx">OUR TEAM</a></li>
        <li><a href="mission.aspx">MISSION, VALUES, VISION</a></li>
        <li><a href="strength.aspx">STRENGTHENING COMMUNITIES</a></li>
        <li><a href="stories.aspx">WHERE STORIES ARE MADE</a></li>
    </ul>

</div>

首先,我尝试删除使用伪的<li>,但是它删除了每个第二个位置中的所有<li>:  nav li ul li:nth-child(2) { display: none; }

接下来,我尝试使用jQuery,我知道我错过了一些东西,我需要帮助:

(function($) {  
    $(document).ready(function(){
        $("#nav li ul li:has(a[href='team'])").remove();
    });
})(jQuery);

1 个答案:

答案 0 :(得分:1)

问题可能是拼写错误,但你有一个{,你应该有一个[

$(document).ready(function(){ 
    $("#nav li ul li:has(a[href='team'])").remove();
    // -------------------^
});

除此之外,如果没有看到你的标记,很难知道正确的答案。


修改

如果您要使用attribute-equals-selector(docs)选择器,则需要完全匹配。

所以这个:

$("#nav li ul li:has(a[href='team'])").remove();

应该是:

$("#nav li ul li:has(a[href='team.aspx'])").remove();

或作为替代方案,您可以使用attribute-starts-with-selector(docs)

$("#nav li ul li:has(a[href^='team'])").remove();