Changer la couleur d'un mot dans une chaine de caractère [Résolu]

Signaler
Messages postés
107
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
7 février 2020
-
Hamster18
Messages postés
107
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
7 février 2020
-
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

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'.
Messages postés
27644
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 février 2020
2 128
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.
Messages postés
107
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
7 février 2020

Pour l'ajouter dans une balise depuis le code js exits-il une fonction quelconque ?
Hamster18
Messages postés
107
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
7 février 2020

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");
Messages postés
107
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
7 février 2020

D'accord merci beaucoup.