Avatar billede nythjem Nybegynder
08. juli 2005 - 12:29 Der er 6 kommentarer og
1 løsning

Nulstil alle tabeller?

Hej alle!

Jeg har på x antal tabeller en kommando
<table..  onclick="cOn(this);">

hvor der ved tryk bliver skiftet baggrund i tabellen.

Fint nok. Jeg vil nu gerne have, at ved OnClick bliver baggrunden rød på den valgte tabel, men alle andre bliver hvide.

Hvordan klarer jeg lige den?

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

<script type="text/JavaScript">

function cOn(td){
if(document.getElementById||(document.all && !(document.getElementById))){
td.style.backgroundColor='#D7ECF7';
}
}
</script>
Avatar billede softspot Forsker
08. juli 2005 - 12:39 #1
Hvis du mener alle tabeller i hele dokumentet, kan du gennemløbe dem med getElementsByTagName("table") og sætte baggrunden til hvid og derefter sætte baggrunden til rød på den tabel der fanger eventet...
Avatar billede nythjem Nybegynder
08. juli 2005 - 13:07 #2
Hej SS :)

Du har jo selvfølgelig ret, og tak for det.. Men jeg får fejl, den siger at egenskaben ikke understøttes, og det er jo helt sikkert fordi jeg er en cirkus artist til javascript, så hvordan ville du gøre?

<script type="text/JavaScript">
function cOn(td){
if(document.getElementById||(document.all && !(document.getElementById))){
td.style.backgroundColor='#D7ECF7';
document.getElementByTagName('table').style.backgroundColor='#FFFFFF';
}
}
</script>
Avatar billede softspot Forsker
08. juli 2005 - 13:10 #3
Alternativt kan du gemme den celle du sidst sætte baggrundsfarven på og så sætte farven til hvid på den og rød på den nye (samtidig med at du gemmer den nye celle).

Noget i stil med dette:

var lastSelCell;
function cOn(td) {
  if(lastSelCell) lastSelCell.style.backgroundColor = "white";
  lastSelCell = td;
  lastSelCell.style.backgroundColor = "red";
}
Avatar billede softspot Forsker
08. juli 2005 - 13:16 #4
Jeg er lidt i tvivl om hvorvidt du faktisk mener celle eller tabel i dit oprindelige spm. Jeg er i mit andet post dog gået ud fra at du mener celler i samme tabel, men rent faktisk har det jo, med mit "nye" løsningsforslag, ikke nogen betydning (med mindre du vil kunne vælge celler i flere tabeller uafhængig af hinanden ;)).

Funktionen document.getElementsByTagName (bemærk s'et i getElements...) returnerer et array og kan derfor ikke tilgåes på den måde du forsøger. Du skal enten indeksere et bestemt element eller iterere igennem alle elementerne efter tur (f.eks. med en for-løkke). Eksempel:

var tbls = document.getElementsByTagName("table");
for(var i = 0; i < tbls.length; i++) {
  tbls[i].style.backgroundColor = "white";
}
Avatar billede nythjem Nybegynder
08. juli 2005 - 14:05 #5
Det er meget perfekt Softspot..

Den her:
var lastSelCell;
function cOn(td) {
  if(lastSelCell) lastSelCell.style.backgroundColor = "white";
  lastSelCell = td;
  lastSelCell.style.backgroundColor = "red";
}

Virker lige efter hensigten, så det er perfekt :)

Du ligger lige et svar, ik :)
Avatar billede softspot Forsker
08. juli 2005 - 14:14 #6
Glad for at kunne hjælpe :)
Avatar billede nythjem Nybegynder
08. juli 2005 - 16:53 #7
:) Og glad for du gad ;)
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