Mam div jak:
<div id="one">
<div class="first"></div>
"Hi I am text"
<div class="second"></div>
<div class="third"></div>
</div>
Próbuję zmienić tylko tekst z „Cześć, jestem tekstem” na „Cześć, zastępuję” za pomocą jquery. To może być łatwe, ale nie jestem w stanie tego zrobić.
Użycie $('#one').text('')
po prostu opróżnia cały #One
div.
javascript
jquery
manojadams
źródło
źródło
Odpowiedzi:
Tekst nie powinien być sam. Umieść to w
span
elemencie.Zmień to na:
źródło
Znajdź węzły tekstowe (
nodeType==3
) i zamieńtextContent
:Przykład na żywo: http://jsfiddle.net/VgFwS/
źródło
Musisz ustawić tekst na coś innego niż pusty ciąg. Ponadto funkcja .html () powinna to zrobić, zachowując strukturę HTML elementu div.
źródło
Jeśli naprawdę znasz tekst, który zamierzasz zastąpić, możesz użyć
http://jsfiddle.net/5rWwh/
Lub
$('#one').contents(':not(*)')
wybiera nieelementowe węzły potomne w tym przypadku węzły tekstowe, a drugi węzeł jest tym, który chcemy zastąpić.http://jsfiddle.net/5rWwh/1/
źródło
jQuery 1.8.3
$('#one').contents(':not(*)')
nic nie wybierze.Innym podejściem jest zachowanie tego elementu, zmiana tekstu, a następnie dodanie tego elementu z powrotem
źródło
Na wszelki wypadek, jeśli nie możesz zmienić HTML. Bardzo prymitywny, ale krótki i działa. (Spowoduje to opróżnienie nadrzędnego elementu DIV, dlatego podrzędny element DIV zostanie usunięty)
źródło