IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Find and Replace


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 573
    Par d�faut Find and Replace
    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

  2. #2
    R�dacteur/Mod�rateur

    Avatar de yahiko
    Homme Profil pro
    D�veloppeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Billets dans le blog
    43
    Par d�faut
    A priori oui.
    En faisant une recherche sur document.body.innerHTML.
    Tutoriels et FAQ TypeScript

  3. #3
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    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

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    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 : S�lectionner tout - Visualiser dans une fen�tre � part
    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");
        }

  5. #5
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    je pense tout de m�me que si on n'a � modifier qu'un seul �l�ment
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById("myId").innerText.replace("mot-a-remplacer", "remplacement");
    est plus efficace.

    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

  6. #6
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    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.

Discussions similaires

  1. Find and Replace
    Par Newenda dans le forum MATLAB
    R�ponses: 2
    Dernier message: 02/06/2009, 15h38
  2. Faire un Find and Replace dans un DataGridView
    Par Contrec dans le forum C#
    R�ponses: 5
    Dernier message: 29/08/2007, 09h40
  3. Find and replace sur plusieur fichiers
    Par dazhoid dans le forum MATLAB
    R�ponses: 1
    Dernier message: 30/08/2006, 16h18
  4. find and replace dans word
    Par Thargor dans le forum API standards et tierces
    R�ponses: 8
    Dernier message: 21/06/2006, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo