gpt4 book ai didi

javascript - 没有ul的li怎么算?

转载 作者:太空狗 更新时间:2023-10-29 13:19:22 26 4
gpt4 key购买 nike

您好,我想计算没有 UL 的 LI,仅针对第一级,但是当我计算这个时,它显示尺寸 4 而不是 2,它也计算内部 LI。

<div class="navigation-container">
<ul class="first-level">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a>
<ul>
<li><a href="#">Link2.1</a></li>
<li><a href="#">Link2.2</a>
<ul>
<li><a href="#">Link 2.2.1</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Link </a></li>
</ul>
</div>

为此使用 jQuery。

jQuery(document).ready(function(){

var nosubnav = jQuery('.first-level li:not(:has(ul))');
var nosubnavsize = jQuery('.first-level li:not(:has(ul))').size();
jQuery(nosubnav).css('border' , '1px solid red');
alert('List item which does not have submenu '+nosubnavsize);

});

测试链接link text在 JSBin 上,

谢谢

最佳答案

您可以使用子选择器 > 来仅定位直接在父元素下的子元素。

jQuery(document).ready(function(){

var nosubnav = jQuery('.first-level > li:not(:has(ul))');
var nosubnavsize = jQuery('.first-level > li:not(:has(ul))').size();
jQuery(nosubnav).css('border' , '1px solid red');
alert('List item which does not have submenu '+nosubnavsize);

});

这将返回 2 的计数。您还可以通过重新使用目标 li 的存储选择(存储在 nosubnav 中)来稍微优化它:

jQuery(document).ready(function(){

var nosubnav = jQuery('.first-level > li:not(:has(ul))');
nosubnav.css('border' , '1px solid red');
alert('List item which does not have submenu '+nosubnav.length);

});

这将减少第二次查询 DOM 的开销。

关于javascript - 没有ul的li怎么算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2771801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com