Eu tenho um div como:
<div id="one">
<div class="first"></div>
"Hi I am text"
<div class="second"></div>
<div class="third"></div>
</div>
Estou tentando alterar apenas o texto de "Oi, sou o texto" para "Oi, sou substituir" usando jquery. Isso pode ser fácil, mas não sou capaz de fazer isso.
Usar $('#one').text('')
apenas esvazia todo o #One
div.
javascript
jquery
manojadams
fonte
fonte
Respostas:
O texto não deve estar sozinho. Coloque-o em um
span
elemento.Altere para este:
fonte
Encontre os nós de texto (
nodeType==3
) e substituatextContent
:Exemplo ao vivo: http://jsfiddle.net/VgFwS/
fonte
Você precisa definir o texto para algo diferente de uma string vazia. Além disso, a função .html () deve fazer isso preservando a estrutura HTML do div.
fonte
Se você realmente sabe o texto que vai substituir, pode usar
http://jsfiddle.net/5rWwh/
Ou
$('#one').contents(':not(*)')
seleciona nós filhos não-elementos neste caso nós de texto e o segundo nó é aquele que queremos substituir.http://jsfiddle.net/5rWwh/1/
fonte
jQuery 1.8.3
$('#one').contents(':not(*)')
não selecionará nada.Outra abordagem é manter esse elemento, alterar o texto e anexar esse elemento de volta
fonte
Apenas no caso de você não conseguir alterar o HTML. Muito primitivo, mas curto e funciona. (Isso esvaziará o div pai, portanto, os divs filhos serão removidos)
fonte