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 -
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
Merci d'avance de votre aide.
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
-
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'. -
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.
-
Pour l'ajouter dans une balise depuis le code js exits-il une fonction quelconque ?
-
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");
-
-
D'accord merci beaucoup.