jquery - 仅限下一级儿童

时间:2012-07-10 12:31:16

标签: javascript jquery

例如:

<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>和剩余列表

注意:我不知道页面的结构,所以我需要一些通用的东西并使用所有结构

1 个答案:

答案 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("*")在语义上是等效的。