Estoy siguiendo este ejemplo y escribí $( "div:contains('John')" ).css( "text-decoration", "underline" ); , pero obtuvo una excepción:
VM23376:1 DOMException no detectada: no se pudo ejecutar '$' en 'CommandLineAPI': 'div:contains('John')' no es un selector válido.
Puedes usar JS vainilla para hacer esto:
function contains(selector, text) { var elements = document.querySelectorAll(selector); return Array.from(elements).filter(function(element) { return RegExp(text).test(element.textContent); }); } // Run Code let found = contains('span', 'Find'); // You can also search with regex found = contains('span', 'Find\\s*[A-Za-z]+'); for (let i = 0; i < found.length; i++) { let elem = found[i]; elem.style.backgroundColor = 'red'; } <p>Some text where you have span tag that said <span>Find Me</span></p>Supongo que fue un problema de copiar y pegar. OP escribió 'div:contains('John')' en lugar de "div:contains('John')" . El código copiado y pegado correctamente funciona sin ningún problema.
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>contains demo</title> <script src="https://code.jquery.com/jquery-3.5.0.js"></script> </head> <body> <div>John Resig</div> <div>George Martin</div> <div>Malcom John Sinclair</div> <div>J. Ohn</div> <script> $( "div:contains('John')" ).css( "text-decoration", "underline" ); </script> </body> </html>la función '$' es desconocida. Probablemente esté intentando ejecutar este código en un lugar donde no se cargó la biblioteca jQuery.
$( "div:contains('John')" ).css( "text-decoration", "underline" ); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div> John </div>