Avatar billede mikkel_strack Nybegynder
05. februar 2006 - 21:03 Der er 8 kommentarer og
1 løsning

Lille funktion virker i firefox, men ikke i IE

Er der nogen der kan forklare mig hvad der går galt her?
Som overskriften antyder virker det fint nok i firefox, men ikke IE

Mikkel
***********
<html>
<head>

<script type="text/javascript">
function setColor(id){
  var allPreQ = new Array
  allPreQ = document.getElementsByName("preQ")
  for(i=0;i<allPreQ.length;i++){
    allPreQ[i].style.color = 'DD0000'
    }
   
  document.getElementById(id).style.color = '0FC220'
}
</script>

</head>

<body>
<table>
<tr>
  <td id="felt1" name="preQ">hej hej</td><td id="felt2" name="preQ">hej hej</td><td id="felt3" name="preQ">hej hej</td>
</tr>
<tr>
  <td><button onclick="setColor('felt1');">knap1</button></td><td><button onclick="setColor('felt2');">knap2</button></td><td><button onclick="setColor('felt3');">knap3</button></td>


</html>
Avatar billede jens_klinting Nybegynder
05. februar 2006 - 21:08 #1
Nu er jeg ingen ørn til javascript. Men jeg kan se at du mangler ; i slutningen af en masse linier i scriptet. I html'en er din tabel ikke afsluttet (mangler </tr> og </table>). Måske hjælper det at rette disse ting.
Avatar billede mikkel_strack Nybegynder
05. februar 2006 - 21:20 #2
Modsat java fx, behøver man ikke at afslutte med ; i javascript.
Avatar billede erikjacobsen Ekspert
05. februar 2006 - 21:49 #3
Formelementer kan have navne i IE, ikke <td>-er. Du skal derfor give dine <td> unikke ideer, men dog således at du kan kende dem ud fra navnet. Og det gør du allerede. Så kan du (skitse)

<script type="text/javascript">
function setColor(id){
  var allPreQ = new Array
  allPreQ = document.getElementsByTagName("td")
  alert(allPreQ.length);
  for(i=0;i<allPreQ.length;i++){
    if (allPreQ[i].id.match(/^felt/)) {
      allPreQ[i].style.color = 'DD0000'
    }
  }
  document.getElementById(id).style.color = '0FC220'
}
</script>

</head>

<body><form>
<table>
<tr>
  <td id="felt1">hej hej</td><td id="felt2">hej hej</td><td id="felt3">hej hej</td>
</tr>
<tr>
  <td><button onclick="setColor('felt1');">knap1</button></td><td><button onclick="setColor('felt2');">knap2</button></td><td><button onclick="setColor('felt3');">knap3</button></td>
Avatar billede erikjacobsen Ekspert
05. februar 2006 - 21:50 #4
Du finder selv ud af at fjerne den alert, ik'?
Avatar billede mikkel_strack Nybegynder
05. februar 2006 - 21:57 #5
Perfekt Erik :o)

Smider du et svar..
Avatar billede erikjacobsen Ekspert
05. februar 2006 - 22:08 #6
Jeg samler slet ikke på point, tak.
Avatar billede mikkel_strack Nybegynder
05. februar 2006 - 22:19 #7
Oki...men takker for svaret i hvert fald
Avatar billede roenving Novice
07. februar 2006 - 13:22 #8
-- og jeg har 2 kommentarer:

>>mikkel_strack

-- du har helt ret i, at man ikke i javascript behøver at afslutte statements med ; men det er dog en god vane at have, så man ikke lige kommer til at glemme dem, hvis man lige skal komprimere dem til en event el.

-- og da en farve-værdi i css _skal_ have et #-tegn foran, bør du absolut sørge for, at du altid indsætter dem:

      allPreQ[i].style.color = '#d00'
    }
  }
  document.getElementById(id).style.color = '#0fc220'
}
Avatar billede mikkel_strack Nybegynder
07. februar 2006 - 14:15 #9
Takker for bemærkningerne roenving.

Du har naturligvis ret mht. til begge dele. Er jo desværre bare en skidt vane at når skidtet tilsyneladende virker, har man(jeg) det med at overse de små fejl..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester