¿Cuál sería la mejor manera de escanear todo el DOM, encontrar cualquier elemento que tenga texto y envolverlo en una clase de tramo? Gracias Jquery encuentra todos los elementos con texto
Respuesta
Envolver todos los nodos de texto que contienen algo más que sólo los espacios en blanco:
$('body *').contents().filter(function() {
return (this.nodeType == 3) && this.nodeValue.match(/\S/);
}).wrap("<span />")
Para envolver todos los nodos de texto, incluyendo las que contienen sólo espacio en blanco:
$('body *').contents().filter(function() {
return (this.nodeType == 3) && this.nodeValue.length > 0;
}).wrap("<span />")
Vea este código en acción en: http://jsbin.com/oquhu3/3 (el * con * espacio en blanco) –
¡Gracias, funciona! He intentado agregar una clase pero no funcionó. $ (function() { $ ('body *'). Contents(). Filter (function() { return (this.nodeType == 3) && this.nodeValue.length> 0; }). AddClass ("someclass"); }); ¿Alguna idea de por qué? Gracias otra vez. – Mircea
No puede agregar una clase a un nodo de texto. Intente envolverlo con un lapso que tenga una clase: $ ('cuerpo *'). Contenido(). Filtro (función() { return (this.nodeType == 3) && this.nodeValue.length> 0; }) .wrap ("") –
Usted puede utilizar .Cada para iterar sobre todos los elememnts:
$('*').each(function(){
if($(this).text())
{
$(this).wrapInner('<span />');
}
})
no he probado que la pieza de código, pero es bastante simple. Todo lo que necesita saber es . Cada, wrapInner y * selector. jQuery docs es muy útil aquí.
Parece que queda algo más de trabajo: http://jsbin.com/oquhu3 –
intente agregar $ (documento) .ready(); a su código: $ (documento) .ready (función() { $ ('*'). cada uno (función {} ( if ($ (this) .text()) { $ (this) .wrapInner (''); } )) }) – dzida
Creo que esto agregará clase a todos los elementos HTML independientemente de si tienen o no texto real. – Mircea
- 1. XPath encuentra todos los elementos con nodo hijo específico
- 2. Jquery seleccionar todos los elementos que contienen texto en ID
- 3. ¿Cómo puedo encontrar todos los nodos de texto entre los nodos de elementos con Javascript/JQuery?
- 4. jQuery: ¿cómo recorro todos los elementos 'a'?
- 5. elementos de investigación con texto usando jQuery
- 6. Jquery ocultar() todos los elementos con cierta clase excepto uno
- 7. jQuery: Seleccione todos los elementos 'select' con cierto valor val()
- 8. jQuery obtener sólo todos los elementos HTML con ID
- 9. jQuery. Seleccionar todos los elementos que se inicia con CLASSNAME
- 10. jQuery selecciona todos los elementos dentro de elementos principales particulares
- 11. jquery cómo seleccionar todos los elementos de la clase comienza con "texto-"?
- 12. Rieles: Encuentra todos con condiciones
- 13. ¿Cómo multiplico todos los elementos en una colección con todos los elementos en otra colección?
- 14. Obtener todos los elementos de opciones seleccionados de todos los elementos seleccionados en un formulario
- 15. Nokogiri encuentra texto en los párrafos
- 16. jQuery Seleccionar todos los elementos que tengan un título
- 17. Cómo quitar la clase de todos los elementos de jQuery
- 18. Retire todos los elementos de una cierta clase con JavaScript
- 19. Buscar todos los elementos en una página cuyo elemento ID contiene un texto determinado usando jQuery
- 20. desactivar todos los elementos de la página con la función modal utilizando jQuery
- 21. Encuentra todos los puntos con coordenadas enteras dentro del tetraedro
- 22. ¿Ocultando todos los elementos con el mismo nombre de clase?
- 23. jQuery función de disparo en todos los elementos de clase
- 24. jquery seleccionar todos los elementos excepto el último por grupo
- 25. Mostrar todos los elementos en la matriz usando jquery
- 26. Recopilar todos los elementos en un formulario en jQuery
- 27. jquery - Seleccionar todos los elementos después de cierto elemento
- 28. jquery: seleccione todos los elementos después del enésimo
- 29. Obtener todos los elementos iframe
- 30. Ocultar todos los elementos con clase usando Javascript simple
creo que es necesario especificar qué te refieres con 'cualquier elemento que tenga texto'. ¿Te refieres a elementos que contienen texto que no sea en blanco, pero no en elementos infantiles? –