例如:
<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>
和剩余列表
注意:我不知道页面的结构,所以我需要一些通用的东西并使用所有结构
答案 0 :(得分:4)
与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("*")
在语义上是等效的。