/ / Come posso cambiare il colore di una lettera in JavaScript? - javascript, html, css

Come posso cambiare il colore di una lettera in JavaScript? - javascript, html, css

Ho una stringa e voglio cambiare solo una lettera di colore in JavaScript.

HTML:

<div id="lettersList">Hello</div>

Nel mio file JavaScript, recupero così (normale)

var lettres = document.getElementById("lettersList");

Ma non so come cambiare il colore di una sola parola (la "o" di "ciao" per esempio). Se cambio grazie a

for (var i=0; i<lettres.length; i++ { lettres[i].style.color = "yellow"; }

cambia tutto il testo (ovviamente). Ma non lo voglio.

risposte:

6 per risposta № 1

Puoi usare il replace() metodo sul innerHTML proprietà dell'elemento:

const element = document.querySelector("#lettersList");
element.innerHTML = element.innerHTML.replace("o", "<span style="color: red;">o</span>");
<div id="lettersList">Hello</div>


1 per risposta № 2

Nel tuo codice:

 var letters = document.getElementById()

in realtà recuperi l'intero elemento, non il testo in esso. Questo potrebbe essere il motivo per cui ha cambiato totalmente il suo colore.

Quindi ti consiglio di usare

document.getElementById().innerHtml()

. Questa funzione recupererà il contenuto nei tuoi tag HTML (div). Quindi fai il cambio di colore come

for(var i = 0; i<letters.length; i++){
//only change the one you want to
if(i == 4 // or whatever you like){
element.innerHTML = element.innerHTML.replace(letters[i], "<span style="color: yellow;">"+letters[i]+"</span>");
}
}

0 per risposta № 3

funziona con

for(var i = 0; i<letters.length; i++){ if(i == 4 { element.innerHTML =element.innerHTML.replace(letters[i], "<span style="color:yellow;">"+letters[i]+"</span>");}}

Ma se una parola contiene due lettere simili, non posso colorarle entrambe... Perché?