Как закрасить строку в table по условию
Есть table
Нужно сделать так что бы строка закрашивалась если в ячейке этой строки есть определенный текст, например "закрасить". Я находил только варианты при клике или наведении а что бы по тексту в ячейке вообще не встречал. Может кто подскажет что смотреть, где смотреть?)) |
Aidec,
что мешает поставить класс в цикле проверяя содержимое? |
Често пока не совсем понимаю как это сделать, можно пример или инфу какуето по этому делу?
|
css includes text
Aidec,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
table {
border-collapse: collapse;
border: 2px solid rgb(200, 200, 200);
letter-spacing: 1px;
font-family: sans-serif;
font-size: 0.8rem;
}
td,
th {
border: 2px solid rgb(200, 200, 200);
}
td.red {
background-color: #FF0000;
}
</style>
</head>
<body>
<table>
<caption>Alien football stars</caption>
<tr>
<th scope="col">Player</th>
<th scope="col">Gloobles</th>
<th scope="col">Za'taak</th>
</tr>
<tr>
<th scope="row">TR-7</th>
<td>7</td>
<td>4,569</td>
</tr>
<tr>
<th scope="row">Khiresh Odo</th>
<td>7</td>
<td>7,223</td>
</tr>
<tr>
<th scope="row">Mia Oolong</th>
<td>9</td>
<td>6,219</td>
</tr>
</table>
<script>
let patern = '7';
document.querySelectorAll('td').forEach(td => {
let txt = td.textContent;
td.classList.toggle('red', txt.includes(patern))
})
</script>
</body>
</html>
|
Aidec,
если дублировать текст в data атрибут то можно без скрипта только css td[data-txt*="7"] { ... } |
Aidec,
отмечены ячейки в которых есть цифра 9
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
table {
border-collapse: collapse;
border: 2px solid rgb(200, 200, 200);
letter-spacing: 1px;
font-family: sans-serif;
font-size: 0.8rem;
}
td,
th {
border: 2px solid rgb(200, 200, 200);
}
td[data-txt*="9"] {
background-color: #FF0000;
}
</style>
</head>
<body>
<table>
<caption>Alien football stars</caption>
<tr>
<th scope="col">Player</th>
<th scope="col">Gloobles</th>
<th scope="col">Za'taak</th>
</tr>
<tr>
<th scope="row">TR-7</th>
<td data-txt="7">7</td>
<td data-txt="4,569">4,569</td>
</tr>
<tr>
<th scope="row">Khiresh Odo</th>
<td data-txt="7">7</td>
<td data-txt="7,223">7,223</td>
</tr>
<tr>
<th scope="row">Mia Oolong</th>
<td data-txt="9">9</td>
<td data-txt="6,219">6,219</td>
</tr>
</table>
</body>
</html>
|
Aidec,
в будущем будет просто td:contains('ваш_текст'){...} |
А если я текст получаю в td таким образом
‘<td>’ + dateSeven(arr[i].Dataob) + ‘</td>’; ? |
Aidec,
`<td data-txt="${dateSeven(arr[i].Dataob)}">${dateSeven(arr[i].Dataob)}</td>`
|
Aidec,
`<td class="${dateSeven(arr[i].Dataob).includes('ваш_техт')? 'red' : ''}">${dateSeven(arr[i].Dataob)}</td>`
|
| Часовой пояс GMT +3, время: 08:28. |