Tengo un div como:
<div id="one">
<div class="first"></div>
"Hi I am text"
<div class="second"></div>
<div class="third"></div>
</div>
Estoy tratando de cambiar solo el texto de "Hola, soy texto" a "Hola, soy reemplazar" usando jquery. Esto puede resultar fácil, pero no puedo hacerlo.
Usar $('#one').text('')
solo vacía todo el #One
div.
javascript
jquery
manojadams
fuente
fuente
Respuestas:
El texto no debería estar solo. Ponlo en un
span
elemento.Cámbielo a esto:
fuente
Busque los nodos de texto (
nodeType==3
) y reemplacetextContent
:Ejemplo en vivo: http://jsfiddle.net/VgFwS/
fuente
Debe configurar el texto en algo que no sea una cadena vacía. Además, la función .html () debería hacerlo conservando la estructura HTML del div.
fuente
Si realmente conoce el texto que va a reemplazar, puede usar
http://jsfiddle.net/5rWwh/
O
$('#one').contents(':not(*)')
selecciona nodos secundarios que no son elementos en este caso, nodos de texto y el segundo nodo es el que queremos reemplazar.http://jsfiddle.net/5rWwh/1/
fuente
jQuery 1.8.3
$('#one').contents(':not(*)')
no seleccionará nada.Otro enfoque es mantener ese elemento, cambiar el texto y luego agregar ese elemento de nuevo
fuente
Por si acaso no puede cambiar HTML. Muy primitivo pero corto y funciona. (Vaciará el div principal, por lo tanto, se eliminarán los divs secundarios)
fuente