J'ai un div comme:
<div id="one">
<div class="first"></div>
"Hi I am text"
<div class="second"></div>
<div class="third"></div>
</div>
J'essaie de changer uniquement le texte de "Salut je suis texte" à "Salut je suis remplacer" en utilisant jquery. Cela pourrait être facile mais je ne suis pas en mesure de le faire.
L' utilisation se $('#one').text('')
jette tout l'ensemble #One
div.
javascript
jquery
manojadams
la source
la source
Réponses:
Le texte ne doit pas être isolé. Mettez - le dans un
span
élément.Changez-le en ceci:
la source
Trouvez les nœuds de texte (
nodeType==3
) et remplacez letextContent
:Exemple en direct: http://jsfiddle.net/VgFwS/
la source
Vous devez définir le texte sur autre chose qu'une chaîne vide. De plus, la fonction .html () devrait le faire tout en préservant la structure HTML du div.
la source
Si vous connaissez réellement le texte que vous allez remplacer, vous pouvez utiliser
http://jsfiddle.net/5rWwh/
Ou
$('#one').contents(':not(*)')
sélectionne les nœuds enfants non élémentaires dans ce cas, les nœuds de texte et le deuxième nœud est celui que nous voulons remplacer.http://jsfiddle.net/5rWwh/1/
la source
jQuery 1.8.3
$('#one').contents(':not(*)')
ne sélectionnera rien.Une autre approche consiste à conserver cet élément, à modifier le texte, puis à rajouter cet élément
la source
Juste au cas où vous ne pouvez pas changer le HTML. Très primitif mais court et fonctionne. (Cela videra le div parent, donc les div enfants seront supprimés)
la source