查找并禁用 <a href>
Find and disabled <a href>
我的结构很奇怪,想使用 a[href="/abc"]
禁用 li.expanded
中的第一个元素。我有 parent 和 child 有相同的 href
但标题不同。我怎样才能select parent 只有元素?
代码如下:
<ul class="n-right m-menu__link-list" id="main-right-menu">
<li class="first leaf"><a href="/xyz" title="xyz-parent">xyz-parent</a></li>
<li class="leaf"><a href="/pqr" title="pqr">pqr</a></li>
<li class="last expanded"><a href="/abc" title="abc">abc</a> //want to find this element and apply treatment
<ul class="n-right m-menu__link-list" id="main-right-menu">
<li class="first leaf"><a href="/abc" title="abc1">abc</a></li> //not this one
<li class="last leaf"><a href="/mno" title="mno">mno</a></li>
</ul>
</li>
</ul>
我试过了,功能正常。 select同时 a[href="/abc"]
parent 和 child。我想找到 select 只有 parent 一个。
openabcInNav: function() {
var navEl = $('#main-menu, #main-right-menu li.expanded').find('a[href="/abc"]:nth-child(1)');
navEl.addClass('doNotClose');
navEl.on('click mouseover', function(event) {
event.preventDefault();
$('nav.global-nav').find('li.expanded').toggleClass('show');
});
},
您可以使用 :first
选择器,它将 return 第一次出现时它的父级 :
$('ul>li.expanded>a[href="/abc"]:first')
$('ul>li.expanded>a[href="/abc"]:first').css('background-color', 'green');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="n-right m-menu__link-list" id="main-right-menu">
<li class="first leaf"><a href="/xyz" title="xyz-parent">xyz-parent</a></li>
<li class="leaf"><a href="/pqr" title="pqr">pqr</a></li>
<li class="last expanded"><a href="/abc" title="abc">abc</a> //want to find this element and apply treatment
<ul class="n-right m-menu__link-list" id="main-right-menu">
<li class="first leaf"><a href="/abc" title="abc1">abc</a></li> //not this one
<li class="last leaf"><a href="/mno" title="mno">mno</a></li>
</ul>
</li>
</ul>
a[href="/abc"]:nth-child(1)
查看 a[href="/abc"]
中的第一个子对象
尝试使用:
a[href="/abc"]:nth-of-type(1)
这将 return 第一个匹配 a[href="/abc"]
我的结构很奇怪,想使用 a[href="/abc"]
禁用 li.expanded
中的第一个元素。我有 parent 和 child 有相同的 href
但标题不同。我怎样才能select parent 只有元素?
代码如下:
<ul class="n-right m-menu__link-list" id="main-right-menu">
<li class="first leaf"><a href="/xyz" title="xyz-parent">xyz-parent</a></li>
<li class="leaf"><a href="/pqr" title="pqr">pqr</a></li>
<li class="last expanded"><a href="/abc" title="abc">abc</a> //want to find this element and apply treatment
<ul class="n-right m-menu__link-list" id="main-right-menu">
<li class="first leaf"><a href="/abc" title="abc1">abc</a></li> //not this one
<li class="last leaf"><a href="/mno" title="mno">mno</a></li>
</ul>
</li>
</ul>
我试过了,功能正常。 select同时 a[href="/abc"]
parent 和 child。我想找到 select 只有 parent 一个。
openabcInNav: function() {
var navEl = $('#main-menu, #main-right-menu li.expanded').find('a[href="/abc"]:nth-child(1)');
navEl.addClass('doNotClose');
navEl.on('click mouseover', function(event) {
event.preventDefault();
$('nav.global-nav').find('li.expanded').toggleClass('show');
});
},
您可以使用 :first
选择器,它将 return 第一次出现时它的父级 :
$('ul>li.expanded>a[href="/abc"]:first')
$('ul>li.expanded>a[href="/abc"]:first').css('background-color', 'green');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="n-right m-menu__link-list" id="main-right-menu">
<li class="first leaf"><a href="/xyz" title="xyz-parent">xyz-parent</a></li>
<li class="leaf"><a href="/pqr" title="pqr">pqr</a></li>
<li class="last expanded"><a href="/abc" title="abc">abc</a> //want to find this element and apply treatment
<ul class="n-right m-menu__link-list" id="main-right-menu">
<li class="first leaf"><a href="/abc" title="abc1">abc</a></li> //not this one
<li class="last leaf"><a href="/mno" title="mno">mno</a></li>
</ul>
</li>
</ul>
a[href="/abc"]:nth-child(1)
查看 a[href="/abc"]
尝试使用:
a[href="/abc"]:nth-of-type(1)
这将 return 第一个匹配 a[href="/abc"]