Buscar texto html y etiquetar padre

Hay tal estructura

<tr class="">
   ...               
                        <span class="">my-marker-1</span>
   ...
 </tr>

Cómo encontrar solo una palabra "marcador"y dar el tr una clase especial?

preguntado el 10 de mayo de 11 a las 13:05

¿Puedes aclarar un poco tu pregunta? -

4 Respuestas

Podrías usar el :contains() selector:

$("tr:contains(my-marker-1)").addClass("my-class-1");

Sin embargo, debe tener en cuenta que :contains() realiza una búsqueda con comodines en el texto de un elemento, por lo que coincidiría cat in category or pit in capital. Si es demasiado amplio para usted, puede usar filter():

$("tr").filter(function () { 
    return $(this).find("span").text() == "my-marker-1";
}).addClass("my-class-1");

contestado el 10 de mayo de 11 a las 17:05

Intente algo como esto.

$("tr td span.label-field").val("marker").closest("tr").addClass("special");

contestado el 10 de mayo de 11 a las 17:05

Si "marcador" siempre estará dentro de un lapso:

$("span").each(function() {
    if ($(this).text() == "my-marker-1") {
        $(this).parent("tr").addClass("special_class");
    }
});

contestado el 10 de mayo de 11 a las 17:05

Suponiendo que desea aplicar una clase a todos TRs con la clase tabledrag-leaf que contienen tramos con texto que contiene la palabra "marcador", esto hará lo que necesita:

$('tr.tabledrag-leaf td').filter( function () {
    return $(this).children('span.label-field').html().indexOf('marker') !== -1;
}).parent().addClass('has-marker');

Vea jQuery.filter() para obtener detalles sobre cómo funciona esto.

contestado el 10 de mayo de 11 a las 18:05

Eso aplicaría la clase a la td elemento, no el tr. - Andy E

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.