在find方法中使用奇数jQuery选择器

时间:2010-03-30 13:32:52

标签: jquery jquery-selectors

有没有人知道这个jQuery选择器会做什么?

object.find('td:eq(1) div div');

我知道td:eq(1)将获得对象中的第二个td元素,但选择器末尾引用的2 div是什么?

4 个答案:

答案 0 :(得分:10)

它在一行中找到第二个表格单元格(我认为它基于0),然后在该单元格内的div内部找到一个div。

所以喜欢:

<tr>
  <td>
    Not me
  </td>
  <td>
    <div class='parent'>
      <div class='child'>
        This stuff here!
      </div>
    </div>
  </td>

答案 1 :(得分:2)

作为旁注,通常应该避免使用非标准的jQuery选择器。

当你只使用标准的CSS选择器时,jQuery可以将选择器工作传递给现代浏览器的快速内置querySelectorAll函数,但是当你使用:eq时,它必须通过相对的慢的native-JavaScript Sizzle选择器库。

所以你可能更喜欢拼写它:

object.find('td').eq(1).find('div div');

答案 2 :(得分:1)

第一部分在对象中找到第二个<td>,而不是每行(对于你想要的:nth-child)。 div div部分在选择器内找到div 2级深度。

以下是object.find('td:eq(1) div div');

的匹配示例
<tr>
 <td><td>
 <td>
   <div>
     <span> <!-- Or any wrappers, etc -->
       <div>Found me!</div>
     </span>
   </div>
 </td>
</tr>

答案 3 :(得分:0)

  

2 div的引用是什么?   选择器的结尾吗?

在div中找到一个div。 (与css选择器相同)