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

Résolu/Fermé
Hamster18 Messages postés 178 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024 - 4 févr. 2020 à 19:06
Hamster18 Messages postés 178 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024 - 5 févr. 2020 à 19:28
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.
A voir également:

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'.
1
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 févr. 2020 à 19:15
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
Hamster18 Messages postés 178 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024
4 févr. 2020 à 19:39
Pour l'ajouter dans une balise depuis le code js exits-il une fonction quelconque ?
0
Hamster18 Messages postés 178 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024
4 févr. 2020 à 20:40
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
Hamster18 Messages postés 178 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024
5 févr. 2020 à 19:28
D'accord merci beaucoup.
0