Я был в состоянии выбрать конкретные строки, которые я хотел, но я не могу выбрать конкретный тд из этих tr.

Я использовал это, чтобы выбрать строки:

$('#time-slot tr:not(:first, :last)')

Затем в этих выбранных строках я пытался игнорировать первый и последний тд, но это не работает. Я использовал такой же подход, как и выше

$('#time-slot tr:not(:first, :last) td:not(:first, :last)')

Есть идеи как мне подойти к этой проблеме. Кстати, я пытаюсь щелкнуть и перетащить мышь, чтобы нарисовать ячейки с определенным пользователем цветом.

0
SherCoder 25 Янв 2013 в 10:04

3 ответа

Лучший ответ

Я предпочитаю использовать меньше селектора строк и больше методов jQuery, а также использовать селекторы :first-child и :last-child для вашей задачи:

$("#time-slot").find("tr").not(":first-child, :last-child").find("td").not(":first-child, :last-child").addClass("active");

http://jsfiddle.net/7b4Ms/

В зависимости от того, что вы ожидаете, что вы не очень хорошо объяснили, это может или не может быть тем, что вы хотите. Для этого нужно выбрать все tr элементы, которые не являются первыми и последними. Внутри этих соответствующих tr элементов он выбирает все элементы td, которые не являются первыми и последними. Таким образом, в основном, он не выделяет внешнее кольцо ячеек в table.

1
Ian 25 Янв 2013 в 06:18

Полностью согласен с Яном, просто я предпочитаю использовать .children () вместо .find (). Потому что это может создать проблему, если у вас есть вложенные таблицы.

$("#time-slot").find("tr").not(":first-child, :last-child").find("td").not(":first-child, :last-child").addClass("active");

Изменения в:

$("#time-slot").children("tr").not(":first-child, :last-child").children("td").not(":first-child, :last-child").addClass("active");
0
Code.Town 25 Янв 2013 в 06:20

Попробуйте это (использует только селекторы CSS):

$("#time-slot tr:not(:first,:last) td:not(:first-child,:last-child)").addClass("active");

Образец

0
Anujith 25 Янв 2013 в 06:39