Проблема с n-потомком jQuery (n + 2) со структурой таблицы - PullRequest
0 голосов
/ 29 июля 2011

Селектор nth-child в jQuery не работает, так как я ожидаю, что он будет работать с приведенным ниже HTML. Возвращает 0 вместо (общее количество SELECT - 1). Это прекрасно работает, если я избавлюсь от TABLE и оставлю только SELECT. Я заметил, что все работает нормально, если я использую nth-child(n+1), сохраняю ли я структуру TABLE или нет. Перемещение кода предупреждения в событие нажатия кнопки ничего не изменило.

<table>
    <tr>
        <td>
            <select>
                <option value=""></option>
                <option value=""></option>
                <option value=""></option>
            </select>
        </td>
        <td>             
            <select>
                <option value=""></option>
                <option value=""></option>
                <option value=""></option>
            </select>
        </td>
    </tr>
</table>

и код JQuery

$(document).ready(function() {
    alert($("select:nth-child(n+2)").length);
});

jsfiddle demo .

jQuery 1.6.2; IE8 (ничего не поделаешь!); Я не использую таблицу для создания макета страницы.

1 Ответ

1 голос
/ 29 июля 2011

Если все, что вам нужно, это каждый элемент select, кроме первого, тогда просто используйте select:gt(0)

. Причина, по которой :nth-child(n+2) не работает, заключается в том, что элементы select не имеют одного и того же родителя.: nth-child зависит от количества детей одного и того же родителя.

Посмотрите на это: http://jsfiddle.net/petersendidit/MvkUP/1/

...