Changer la couleur d'un mot dans une chaine de caractère

Résolu
Hamster18 Messages postés 176 Date d'inscription   Statut Membre Dernière intervention   -  
Hamster18 Messages postés 176 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour j'ai une chaine de caractère dans laquelle j'aimerais changer la couleur d'un mot précisément. Je récupère cette chaine d'une balise <p> puis je la "découpe" grace a la méthode split(). J'ai essayé avec le méthode
words[j].style.color = '#4075A4';
mais cela me provoque une erreur. J'ai ensuite essayer avec
words[j].fontcolor("4075A4")
mais cela ne change pas la couleur ... Auriez vous des idées ?

Merci d'avance de votre aide.

4 réponses

  1. odd
     
    Salut,
    ceci récupére la chaîne pour placer une balise 'span' autour du second mot(après le 1er espace), à adapter selon vos contraintes:

    
    <p id='souschaine'>Un texte a découper</p>


    let chaine = document.getElementById('souschaine').innerHTML;
    let premierEspace =chaine.indexOf(' ');//-- position du 1er espace
    let chaine2=chaine.substring(premierEspace+1, chaine.length);/* chaine tronquée après 1er espace*/
    let secondEspace=chaine2.indexOf(' ');/*  on a maintenant l'emplacement (index) des 2 espaces entourant le 2nd mot*/
    
    let nouvelleChaine=chaine.substring(0,premierEspace)+'<span class="aStyler">'+chaine.substring(premierEspace, secondEspace)+'</span>'+chaine.substring(secondEspace+1, chaine.length);
    
    document.getElementById('souschaine').innerHTML=nouvelleChaine;/* remplace l'ancien par le nouveau */


    voilà il ne reste qu'à mettre la classe CSS 'aStyler'.
    1
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
     
    Bonjour
    les styles s'applique à des éléments HTML tel que les balises p, span , div...
    tu dois donc placer le mot à colorier dans une balise span ou p et c'est à cette balise que tu appliquera le style.
    0
  3. Hamster18 Messages postés 176 Date d'inscription   Statut Membre Dernière intervention  
     
    Pour l'ajouter dans une balise depuis le code js exits-il une fonction quelconque ?
    0
    1. Hamster18 Messages postés 176 Date d'inscription   Statut Membre Dernière intervention  
       
      car j'ai essayer comme ceci :
      words[j].fontcolor("4075A4")
      let newP = document.createElement('span');
      newP.textContent = words[j];
      newP.style.color = '#f32b00';
      var div=document.querySelector("h1")
      document.body.insertBefore(newP,texte[i].childNodes[0]);
      


      Mais j'ai l'erreur suivante "NotFoundError: Node was not found"

      voici comment j’obtiens texte[i] :
      var texte = document.querySelectorAll(".text-news");
      0
  4. Hamster18 Messages postés 176 Date d'inscription   Statut Membre Dernière intervention  
     
    D'accord merci beaucoup.
    0