Tengo un script de tampermonkey que resalta las filas de la tabla cuando columnas específicas contienen texto específico.
Por ejemplo, el siguiente código resalta correctamente las filas donde la columna 1 contiene 'M' y las filas donde la columna 3 contiene '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");¿Cómo puedo usar un operador AND o una declaración IF para resaltar una fila solo si la columna 1 contiene 'P' Y la columna 3 contiene 'M'?
Tome todos los elementos <tr> y fíltrelos hasta los que tengan los elementos <td> que coincidan con sus requisitos.
Una vez que tengas esa colección filtrada, establece el color de fondo.
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>