Ciao, innerHTML ti restituisce una stringa; ma tu non puoi applicare uno stile, o quello che è, ad una stringa in quel modo. Dovrai piuttosto applicarlo ad un reale elemento del DOM, ad esempio uno <span>. In tal caso dovrai aggiungerlo andando a ricostruire opportunamente il contenuto da passare, ad esempio, alla stessa proprietà innerHTML.
Una cosa del genere:
Chiaramente si può fare in svariati altri modi.codice:<!DOCTYPE HTML> <html> <head> <title>Esempio</title> <meta charset="utf-8"> </head> <body> <div id="frase">la giornata e troppo breve</div> </body> <script type="text/javascript"> var elemento = document.querySelector("#frase"); var frase = elemento.innerHTML; elemento.innerHTML = frase.slice(0,-3)+"<span style='background:yellow;'>"+frase.slice(-3)+"</span>"; </script> </html>
Fai attenzione però che innerHTML ti restituisce il codice sorgente, in forma testuale, che è contenuto in tale elemento; per cui potrebbe capitare di avere degli altri tag al suo interno, e non solo del testo; in tal caso questo metodo potrebbe fallire restituendo magari dei tag troncati e sfasciando quindi il markup con risultati imprevedibili.
Chiaro che in questo semplice esempio c'è solo del testo e il tutto funziona come ci si aspetta.
PS: occhio a come posti il codice sul forum, il moderatore di turno non ci metterà molto a bastonarti. Vedi come postare il codice sul regolamento di sezione (discussione in evidenza).


Rispondi quotando
