Gå til innhold

Endre tekst vha javascript


Anbefalte innlegg

Hei,

 

jeg prøver å lage en funksjon som automatisk endrer tekst vha. javascript.

 

 

Tenker for eksempel noe som endrer alle steder det står blå til rød og rød til blå inne i en <div>.

 

<div id="farge">Min bil er blå, din bil er rød. Du har blå øyne, jeg har rød frakk.</div>

 

skal altså bli til :

 

<div id="farge">Min bil er rød, din bil er blå. Du har rød øyne, jeg har blå frakk.</div>

.

 

Dette skal da skje når man trykker på en knapp(<button onclick="funksjon">).

 

Hvis noen hadde vært så snille å hjelpe meg med dette hadde det vært flott!

 

På forhånd takk!

Lenke til kommentar
Videoannonse
Annonse

Kanskje ikke den mest elegante løsningen, men det fungerer for dette eksemplet. En liten svakhet at det som blir erstattet er alltid i lower case.

<script>
function endre() {
 // splitt streng til array
 var str=document.getElementById('farge').innerHTML.split(' ');
 // endre farge
 for (i in str) {
   if (str[i].toLowerCase().indexOf('blå')!=-1) str[i]=str[i].replace(/blå/gi,'rød'); // gi = global, case in-sensitive
   else if (str[i].toLowerCase().indexOf('rød')!=-1) str[i]=str[i].replace(/rød/gi,'blå');
 }
 // skriv ut string
 document.getElementById('farge').innerHTML='';
 for (i in str) {
   document.getElementById('farge').innerHTML+=str[i]+' ';
 }
}
</script>
<button type="button" onclick="endre()">Endre farge</button>
<div id="farge">Min bil er blå, din bil er rød. Du har blå øyne, jeg har rød frakk.</div>

Vil tro det er mulig å løse dette mer elegant med regular expression, noe ala preg_replace() i PHP.

Endret av Crowly
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...