я хочу динамично добавить класс ко всем строкам таблицы кроме первой и последней строки. как я сделал бы это, не присваивая css класс строкам для идентификации их. Я получаю всех кроме первой строки в настоящее время с
$("#id").find("tr:gt(0)")
я должен объединить это с not("tr:last")
так или иначе, возможно?
Отбросьте gt ()
, поскольку я предполагаю, что он немного медленнее, чем : first
.
Используйте not ()
вместе с : first
и : last
:
$('table#tbl > tbody > tr').not(':first').not(':last').addClass('highlight');
Большинство браузеров автоматически добавляют элемент Я не уверен на 100%, что это делают все браузеры, поэтому было бы безопаснее просто добавить Надеюсь, это решит вашу проблему! Странно, но опубликованные предложения не сработали, все они должны работать! НО ... Если не сработало, сделайте так .... немного медленнее, но ДОЛЖНО РАБОТАТЬ !!
ПОПРОБУЙТЕ: tbody
. в разметке таблицы, если она отсутствует, поэтому селектор непосредственных дочерних элементов дал сбой - не было элементов
в качестве непосредственных дочерних элементов тега
.
вручную. В противном случае вам нужно немного понюхать, и вы не сможете сделать это как единое целое:
if($('table#tbl > tbody').size() > 0) {
$('table#tbl > tbody > tr').not(':first').not(':last').addClass('highlight');
} else {
$('table#tbl > tr').not(':first').not(':last').addClass('highlight');
}
$('table#tbl tr').addClass('highlight');
$('table#tbl tr:first-child').removeClass('highlight');
$('table#tbl tr:last-child').removeClass('highlight');
Похожие вопросы: