jQuery selector $ ('table td: eq (2) a') получает ячейку только из первой строки - PullRequest
4 голосов
/ 04 февраля 2010

$('table td:eq(2) a') возвращает тег a третьего столбца, но только из первого ряда.

Почему?

Ответы [ 4 ]

6 голосов
/ 04 февраля 2010

Это не ошибка, но это определенно сбивает с толку.Что даст вам ожидаемый результат:

$('table td:nth-child(3) a')

В то время как: nth-child и: eq кажутся очень похожими, поведение может сильно отличаться, как видно из ожидаемого результата.

Документацию по jQuery можно найти здесь .В нем говорится:

Псевдокласс: nth-child (n) легко спутать с: eq (n), даже если эти два могут привести к совершенно разным сопоставляемым элементам.С помощью: nth-child (n) подсчитываются все дочерние элементы независимо от того, кем они являются, и указанный элемент выбирается, только если он соответствует селектору, прикрепленному к псевдоклассу.С помощью: eq (n) подсчитывается только селектор, присоединенный к псевдоклассу, не ограничиваясь потомками любого другого элемента, и выбирается n-й.

Другими словами, eq (2) выберет третий элемент в наборе результатов while, тогда как: nth-child (3) выберет 3 потомка своего родителя.И в этом случае родитель будет его tr.

3 голосов
/ 04 февраля 2010

Нет, это не ошибка. Он соответствует тегу привязки в третьем элементе набора, соответствующем table td, поэтому он находится в третьей ячейке таблицы.

(Если бы таблица имела ширину всего две ячейки, вы бы получили первую ячейку во втором ряду.)

2 голосов
/ 20 ноября 2014

Проще говоря,

В соответствии с вашим кодом $('table td:eq(2)') возвращает третье td в table, как при расчете от индекса = 0 будет выбрано третье td, см. Ниже

enter image description here

для $('table td:eq(4)') результат будет пятым td таблицы, см. Ниже

enter image description here

для выбора всего второго столбца используйте: индекс nth-child () начинается с 1

например: $('table td:nth-child(2)')

enter image description here

Надеюсь, вы получите ответ.

0 голосов
/ 30 ноября 2011

$('table td:eq(2)') выберет все 'table td', а индекс eq(2) выберет третий td из этой коллекции. так что под третьим столбцом есть только один a.

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