例如:
<div id="headerWrapper">
<H1>TEST</H1>
<div id="paarofileLinks">
<ul id="primaryNav" role="navigation">
<li id="musicNav" class="navItem">
<a href="/music" class="nav-link">Music</a>
</li>
<li id="listenNav" class="navItem">
<a href="/listen" class="nav-link">Radio</a>
</li>
<li id="eventsNav" class="navItem">
<a href="/events" class="nav-link nna" id="vbulletin_css2">Events</a>
</li>
<li id="chartsNav" class="navItem">
<a href="/charts" class="nav-link">Charts</a>
</li>
<li id="communityNav" class="navItem">
<a href="/community" class="nav-link">Community</a>
</li>
<li id="originalsNav" class="navItem">
<div>
<a href="http://originals.last.fm" class="nav-link">Originals</a>
</div>
</li>
</ul>
</div>
如果我使用这个选择器
$("#headerWrapper").children("*");
它会得到所有的孩子,但我需要返回
<H1>TEST</H1>
<div id="paarofileLinks"></div>
没有
<ul>
和其余列表注意:我不知道页面的结构,因此我需要一些通用的知识并能处理所有结构
最佳答案
与find()
不同,children()
仅返回给定元素的直接子代。
因此,您的查询应该准确地执行您想要的操作,并且只返回有问题的两个元素。如果不是这种情况,那么可能还有其他问题。请使用几乎完全相同的代码查看示例代码片段,以给出正确的结果:
$("#headerWrapper").children().each(function(){console.log(this)});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="headerWrapper">
<H1>TEST</H1>
<div id="paarofileLinks">
<ul id="primaryNav" role="navigation">
<li id="musicNav" class="navItem">
<a href="/music" class="nav-link">Music</a>
</li>
<li id="listenNav" class="navItem">
<a href="/listen" class="nav-link">Radio</a>
</li>
<li id="eventsNav" class="navItem">
<a href="/events" class="nav-link nna" id="vbulletin_css2">Events</a>
</li>
<li id="chartsNav" class="navItem">
<a href="/charts" class="nav-link">Charts</a>
</li>
<li id="communityNav" class="navItem">
<a href="/community" class="nav-link">Community</a>
</li>
<li id="originalsNav" class="navItem">
<div>
<a href="http://originals.last.fm" class="nav-link">Originals</a>
</div>
</li>
</ul>
</div>
</div>
旁注:不必使用选择器,因为
children()
和children("*")
在语义上是等效的。关于javascript - jQuery-仅获得下一级 child ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11413377/