我需要在下拉菜单中隐藏/删除链接(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);
答案 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();