【问题标题】:jQuery select elements on 1st "level"jQuery 在第一“级别”选择元素
【发布时间】:2010-11-09 21:23:11
【问题描述】:

我只想选择第一个“级别”上的元素。

例如:

<div id="BaseElement">
  <p>My paragraph 0</p>
  <div>
    <span>My Span 0</span>
    <span>My Span 1</span>
  </div>
  <span>MySpan 2</span>
  <span>MySpan 3</span>
  <p>My paragraph 1</p>
</div>

假设您获得了 BaseElement 节点。

var Element = $("div#BaseElement");

如何仅从基本元素节点获取节点?

$("div#BaseElement span")

应该只导致获得 MySpan 2 和 MySpan 3。

【问题讨论】:

    标签: jquery dom css-selectors


    【解决方案1】:
    $("#BaseElement").children("span");
    

    $("#BaseElement > span");
    

    请参阅 jQuery selectorschildren()

    【讨论】:

      【解决方案2】:

      在jQuery API中,当它指代'descendants'时,表示所有级别,而当它指代'children'时,表示只有第一级

      这将使您获得所有第一级孩子(在您的示例中,第一个 p、div、2 个跨度和最后一个 p)

      $('#BaseElement > *')
      

      【讨论】:

        【解决方案3】:

        另请参阅What is the difference direct descendent (>) vs. descendant in jQuery selectors? 以了解选择器中空格和 > 之间的区别。空格等于 find(),> 等于 children()。也就是说,下面的对是等价的,

        $("#BaseElement").children("span");
        $("#BaseElement > span");
        

        获取所有孩子及其后代:

        $("#BaseElement").find("span");
        $("#BaseElement span");
        

        【讨论】:

          猜你喜欢
          • 2010-11-01
          • 2015-02-25
          • 1970-01-01
          • 2014-02-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-01
          • 1970-01-01
          相关资源
          最近更新 更多