jQuery 根据该行中两个单元格的值更改 table 行的背景
jQuery to change background on table row based on values of two cells within that row
我有一个 tampermonkey 脚本,它在特定列包含特定文本时突出显示 table 行。
例如,下面的代码成功突出显示了第 1 列包含 'M' 的行和第 3 列包含 'P'.
的行
$("td:nth-of-type(1):contains('M')").parent().css("background-color","#ccccff");
$("td:nth-of-type(3):contains('P')").parent().css("background-color","#ccccff");
仅当第 1 列包含 'P' 且第 3 列包含 'M' 时,如何使用 AND 运算符或 IF 语句突出显示行?
获取所有 <tr>
元素并将其筛选为具有符合您要求的 <td>
元素的元素。
获得过滤后的集合后,设置背景颜色。
const MATCH = [{
col: 0,
chr: "M"
}, {
col: 2,
chr: "P"
}]
$("tr").filter((_, tr) => {
// get the <td> children
const cells = $(tr).children("td")
// Ensure each MATCH appears in each cell respectively
return MATCH.every(({ col, chr }) => cells.eq(col).text().includes(chr))
}).css("background-color", "#ccf")
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.slim.min.js"></script>
<table border="1">
<tr>
<td>No capital "m" here</td>
<td>foo</td>
<td>No capital "p" here</td>
</tr>
<tr>
<td>Mo Money</td>
<td>bar</td>
<td>Mo Problems</td>
</tr>
<tr>
<td>Pass the</td>
<td>baz</td>
<td>Mayo please</td>
</tr>
</table>
我有一个 tampermonkey 脚本,它在特定列包含特定文本时突出显示 table 行。
例如,下面的代码成功突出显示了第 1 列包含 'M' 的行和第 3 列包含 'P'.
的行$("td:nth-of-type(1):contains('M')").parent().css("background-color","#ccccff");
$("td:nth-of-type(3):contains('P')").parent().css("background-color","#ccccff");
仅当第 1 列包含 'P' 且第 3 列包含 'M' 时,如何使用 AND 运算符或 IF 语句突出显示行?
获取所有 <tr>
元素并将其筛选为具有符合您要求的 <td>
元素的元素。
获得过滤后的集合后,设置背景颜色。
const MATCH = [{
col: 0,
chr: "M"
}, {
col: 2,
chr: "P"
}]
$("tr").filter((_, tr) => {
// get the <td> children
const cells = $(tr).children("td")
// Ensure each MATCH appears in each cell respectively
return MATCH.every(({ col, chr }) => cells.eq(col).text().includes(chr))
}).css("background-color", "#ccf")
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.slim.min.js"></script>
<table border="1">
<tr>
<td>No capital "m" here</td>
<td>foo</td>
<td>No capital "p" here</td>
</tr>
<tr>
<td>Mo Money</td>
<td>bar</td>
<td>Mo Problems</td>
</tr>
<tr>
<td>Pass the</td>
<td>baz</td>
<td>Mayo please</td>
</tr>
</table>