У меня есть таблица без td/th-id/classes, и я прохожу через таблицу, чтобы получить данные из td: s. Если нет данных или данных: «-», то я устанавливаю класс CSS на этом td. Например:Сопоставьте два массива с условием
$('.simpletable td').each(function() {
if($(this).text() === '-')
{
$(this).addClass("nodata");
}
});
Однако мне нужно сопоставить это 'td' с соответствующим 'th', чтобы установить тот же CSS-класс. Я получаю массив для th-массива с:
$('.simpletable th').each(function()
{
tableheaders.push($(this).text());
});
Кто-нибудь знает, как достичь этого? Или есть более простой способ сделать все это, если я начну с нуля?
Эта таблица имеет несколько строк 'th', поэтому я не могу сделать что-либо с колонками.
MARKUP HTML:
<table class="simpletable">
<thead>
<th>th1</th>
<th>th2</th>
<th>th3</th>
</thead>
<tbody>
<tr>
<td>data 1</td>
<td>-</td>
<td>data 3</td>
</tr>
<thead>
<th>th4</th>
<th>th5</th>
<th>th6</th>
</thead>
<tr>
<td>data 4 row 2</td>
<td>-</td>
<td>data 6 row 2</td>
</tr>
</tbody>
Там есть пара вещей, которые вы можете сделать. Во-первых, чтобы решить вашу * непосредственную * проблему, вы можете использовать функцию ': eq()' и 'index()'. 'var index = $ (this) .index();', то для вашего th '$ ('th: eq (' + index + ')'' выберет 'th', который будет тем же самым столбцом, что и' td Во-вторых, есть такая вещь, как селектор 'text': https://api.jquery.com/text-selector/ - вы можете использовать это так:' $ ('. Simpletable td [text = "- ']'). each (', которые будут выбирать только ячейки, которые имеют текст, равный '=' –
@ ᾠῗᵲ ᄐ ᶌ. Вы должны восстановить свой ответ, он окажется правильным из-за разъяснения вопроса – Barmar