Existe-t-il un moyen de remplacer le texte normal dans un élément de tableau placé dans le corps du HTML?
Comme remplacer "bonjour" par "salut"?
Veuillez n'utiliser que JavaScript sans jQuery .
javascript
html
Wahtever
la source
la source
hello, this is a text randomTexthello
devrait êtrehi, this is a text randomTexthello
. Cependant, toutes les autres réponses remplacent ici les caractères au lieu des mots.Réponses:
Pour remplacer une chaîne dans votre HTML par une autre, utilisez la méthode replace sur innerHTML :
Notez que cela remplacera la première instance de
hello
dans tout le corps, y compris toutes les instances de votre code HTML (par exemple les noms de classe, etc.), donc utilisez avec prudence - pour de meilleurs résultats, essayez de restreindre la portée de votre remplacement en ciblant votre code en utilisant document.getElementById ou similaire.Pour remplacer toutes les instances de la chaîne cible, utilisez une expression régulière simple avec l'
g
indicateur lobal:la source
<script type="text/javascript"> window.onload = clear(); function clear() { document.body.innerHTML = document.body.replace('ü', 'n'); } </script>
window.onload = clear;
sans les parenthèses "()". Lorsque vous écrivez,clear()
vous exécutez réellement la fonction, mais vous ne voulez affecter la fonction qu'au gestionnaire onloadLa fonction ci-dessous fonctionne parfaitement pour moi:
Voici un exemple d'utilisation:
Vous pouvez également utiliser faire un remplacement direct comme ceci:
Mais soyez prudent car cela peut également affecter les balises, le CSS et les scripts.
EDIT: Comme pour une solution JavaScript pure, utilisez plutôt cette méthode:
la source
J'ai fini avec cette fonction pour remplacer en toute sécurité le texte sans effets secondaires (jusqu'à présent):
C'est pour les cas où les 16 Ko de
findAndReplaceDOMText
sont un peu trop lourds.la source
J'ai eu le même problème. J'ai écrit ma propre fonction en utilisant replace sur innerHTML, mais cela ferait bousiller les liens d'ancrage et autres.
Pour que cela fonctionne correctement, j'ai utilisé une bibliothèque pour le faire.
La bibliothèque a une API géniale. Après avoir inclus le script, je l'ai appelé comme ceci:
la source
J'essayais de remplacer une très grande chaîne et pour une raison quelconque, les expressions régulières lançaient des erreurs / exceptions.
J'ai donc trouvé cette alternative aux expressions régulières qui fonctionne également assez rapidement. Au moins, c'était assez rapide pour moi:
src: Comment remplacer toutes les occurrences d'une chaîne en JavaScript?
la source
Utilisez la fonction de remplacement de chaîne javascript par défaut
la source
Essayez d'appliquer la solution suggérée ci-dessus sur un document assez volumineux, en remplaçant les chaînes assez courtes qui pourraient être présentes dans innerHTML ou même innerText, et votre conception html devient au mieux cassée
Par conséquent, je prends d'abord uniquement les éléments de nœud de texte via des nœuds HTML DOM, comme ceci
`et ensuite j'ai appliqué le remplacement sur chacun d'eux en cycle
la source
Je voulais ajouter un exemple à la réponse de funky-future car je continuais à recevoir cette erreur:
utiliser comme ceci:
cela n'a pas fonctionné pour moi avec les sélecteurs jQuery.
la source
Parfois, le changement
document.body.innerHTML
interrompt certains scripts JS sur la page. Voici la version, qui ne change que le contenu destext
éléments:la source
Je suis nouveau
Javascript
et je viens de commencer à apprendre ces compétences. Veuillez vérifier si la méthode ci-dessous est utile pour remplacer le texte.la source