$(".yourtableclassname tr:not(:first)").each(function() {
}
Я использую приведенное выше, чтобы перебирать все строки таблицы, исключая первую строку, потому что это названия столбцов. Затем, в зависимости от некоторого значения столбца, я устанавливаю цвет фона этой строки.
Это отлично работает, если у меня есть только одна таблица. Но если у меня есть две таблицы с тем же именем класса, она обрабатывает строки второй таблицы как строки первой таблицы. Таким образом, будут заданы цвета фона заголовка второй таблицы.
Во всяком случае, я могу это исправить? У меня может быть несколько таблиц в форме, поэтому я не хочу использовать id.
--example код -
$(".Grid tr:not(:first)").each(function() {
var nameofField = $(this).find("td:nth-child(4)").html();
if(nameofField != ""){
$(this).closest('tr').addClass('Red').removeClass('Blue');
}
}
Код для корректировки цветов выглядит корректно. Я предполагаю, что вы неправильно описали проблему. Регулярные строки второй таблицы, вероятно, обновляются правильно, проблема только в строке заголовка.
Попробуйте этот селектор:
$(".yourtableclassname tr:not(:first-child)")
Это пропустит первую строку каждой таблицы. Ваш селектор просто пропустил первую строку первой таблицы.
Вы думали использовать <th></th>
для своих строк заголовков? Это должно решить.
EDIT: Если вы не можете использовать <th></th>
используйте $(".yourClassName").finds("tr:not(:first)")
. Должен сделать трюк!
:not
.
$(this)
для ссылки на текущую строку, она должна получить доступ к правильной таблице.