Нечетный селектор jQuery, используемый в методе поиска - PullRequest
1 голос
/ 30 марта 2010

Кто-нибудь знает, что будет делать этот селектор jQuery?

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

Я знаю, что td: eq (1) получит 2-й элемент td в объекте, но что будет делать ссылка на 2 div в конце селектора?

Ответы [ 4 ]

10 голосов
/ 30 марта 2010

Он находит вторую ячейку таблицы подряд (я думаю, что она основана на 0), а затем div внутри div внутри этой ячейки.

Так как:

<tr>
  <td>
    Not me
  </td>
  <td>
    <div class='parent'>
      <div class='child'>
        This stuff here!
      </div>
    </div>
  </td>
2 голосов
/ 30 марта 2010

В качестве дополнительного примечания, вы, как правило, должны избегать нестандартных селекторов jQuery.

Когда вы используете только стандартные селекторы CSS, jQuery может передать работу селектора быстрой встроенной функции querySelectorAll современных браузеров, но когда вы используете :eq, она должна пройти через относительно медленный native-JavaScript Библиотека селекторов Sizzle.

Так что вы можете предпочесть это по буквам:

object.find('td').eq(1).find('div div');
1 голос
/ 30 марта 2010

Эта первая часть находит 2-е <td> общее в объекте, а не на строку (для этого вы хотите :nth-child). Часть 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>
0 голосов
/ 30 марта 2010

на что ссылается 2 div конец селектора делать?

Найти div внутри div. (аналогично селектору css)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...