El jQuery a continuación detecta la palabra first y third en cualquier texto <p> y le agrega un fondo amarillo o rojo.
$(document).ready(function(){ $("p:contains(first)").css("background-color", "yellow"); $("p:contains(third)").css("background-color", "red"); }); <p>I'm the first sentence.</p> <p>I'm the second sentence.</p> <p>I'm the third sentence.</p> <p>I'm the fourth sentence.</p>JSFiddle: https://jsfiddle.net/3p0nmw4f/1/
Sin embargo, en lugar de resaltar el texto, quiero addClass al cuerpo del documento html de esta manera:
<body class="first">o
<body class="third"> Sé que podemos lograr esto usando $(document.body).addClass('first'); pero no puedo armarlo.
Por favor ayuda.
Puede buscar el elemento HTML del cuerpo más cercano. Puedes hacer esto haciendo lo siguiente:
$(document).ready(function(){ $("p:contains(first)").closest('body').addClass('first'); $("p:contains(third)").closest('body').addClass('third'); });Otra posibilidad sería simplemente buscar el elemento del cuerpo de la siguiente manera:
$(document).ready(function(){ if ($("p:contains(first)")) $("body").addClass("first") if ($("p:contains(third)")) $("body").addClass("third") });Fuente: https://jsfiddle.net/fk05dabw/