Bonjour,
Je voulais savoir si en JS, il �tait possible de cherche un mot dans un page html et de remplacer ce mot par un autre mot ou par exemple le mettre en gras ?
Thais
Version imprimable
Bonjour,
Je voulais savoir si en JS, il �tait possible de cherche un mot dans un page html et de remplacer ce mot par un autre mot ou par exemple le mettre en gras ?
Thais
A priori oui.
En faisant une recherche sur document.body.innerHTML.
oui et non
effectivement yahiko � raison innerHTML contient bien le code source de la page
un appel � replace remplacera le mot
mais en fait il va aussi changer toute la page.
modifier le innerHTML d'un �l�ment revient � supprimer son contenu et le remplacer par le DOM correspondants au code HTML fourni.
si donc des valeurs ont chang�s (variable js) apr�s le replace la page sera comme � l'origine (les modifs seront perdues)
mais il est possible de chercher tous les textNodes et de remplacer le texte dans ceux-ci
c'est long mais pas compliqu�.
il est grandement pr�f�rable de mettre un id sur l'�l�ment modifiable et de ne s�lectionner que selui-ci lors du remplacement
A+JYT
Il est effectivement pr�f�rable de pr�ciser un sous-conteneur contenant le texte � remplacer pour des raisons �videntes de performance et de pr�vention de probl�mes. Par contre un ID n'est pas forc�ment le plus appropri�, attention avec les mauvais r�flexes.
Un exemple :
Code:
1
2
3
4
5
6
7
8
9
10
11 var node; var walker = document.createTreeWalker( elementSousConteneur, NodeFilter.SHOW_TEXT, null, false ); while(node = walker.nextNode()) { node.textContent = node.textContent.replace("mot-a-remplacer", "remplacement"); }
je pense tout de m�me que si on n'a � modifier qu'un seul �l�ment
est plus efficace.Code:document.getElementById("myId").innerText.replace("mot-a-remplacer", "remplacement");
je maintiens que l'ID est une bonne pratique. m�me si tr�s souvent je dis qu'on peut efficacement s'en passer.
A+JYT
L'ID n'est pas une bonne pratique, pas plus que ne l'est la classe, le tagName ou toute autre forme de s�lection. La bonne pratique, c'est de choisir le plus appropri� selon la situation. Et au vu du nombre de gens qui ne connaissent rien d'autre que document.getElementById, il me para�t important de mentionner les autres options.
Et pour info, innerText n'est pas standard. C'est textContent qu'il faut utiliser.