选择子元素而不是后代

sta*_*tti 0 javascript jquery

我怎样才能选择tbody的孩子而不是他们的后代?例如,使用以下jQuery语句:

alert( $( '.someClass tbody tr' ).length );
Run Code Online (Sandbox Code Playgroud)

使用下面的示例html将产生2的长度:

<div>
  <table class='someClass'>
    <tbody>
      <tr>
        <td>
          <span>cell 1-1</span>
            <table>
              <tbody>
                <tr class='level-2'>
                  <td>
                    <span>cell 1-2</span>
                    <table>
                      <tbody>
                        <tr class='level-3'>
                          <td><span>cell 1-3</span></td>
                        </tr>
                      </tbody>
                    </table>
                  </td>
                </tr>
              </tbody>
            </table>
          </td>
        </tr>
        <tr>
          <td>
            <span>cell 2-1</span>
            <table>
              <tbody>
                <tr class='level-2'>
                  <td>
                    <span>cell 2-2</span>
                      <table>
                        <tbody>
                          <tr class='level-3'>
                            <td><span>cell 2-3</span></td>
                          </tr>
                        </tbody>
                      </table>
                    </td>
                  </tr>
                </tbody>
              </table>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
Run Code Online (Sandbox Code Playgroud)

Emm*_*uel 5

你可以这样做:

alert( $( '.someClass > tbody > tr' ).length );
Run Code Online (Sandbox Code Playgroud)

那实际上是一个css2选择器,jQuery很好地实现了.

  • 它不是CSS 3选择器.它实际上是从CSS 2开始指定的. (2认同)