Avatar billede ieconfig Nybegynder
23. november 2006 - 10:51 Der er 4 kommentarer og
1 løsning

Gennemløb af tabeller

Hej Eksperter.

Jeg skal løbe et par tabeller igennem og skifte farve på dem.
Hvorfor skifter nedenstående kode kun farve på den første tabel ?

function stripe() {

    var divs,contDivs,d,table;
    divs=document.getElementsByTagName('table');

    contDivs=[];

    for(var i=0;i<divs.length;i++){
          if(/\bcolumn\b/.test(divs[i].className)){
                d=divs[i];
                contDivs[contDivs.length]=d;
          }
    }

    for(var i=0;i<contDivs.length;i++){
       
            table = contDivs[i];
            fvalg=1;
           
            tr = table.getElementsByTagName("tr");
            for(i=0;i<tr.length;i++)
            {
                  td = tr[i].getElementsByTagName("td");
                  for(j=0;j<td.length;j++)
                  {
                  td[j].style.background = "red";
                  }
            }
         
    }
}

contDivs.length er 2, så den burde løbe begge tabeller igennem ik ?

<html>

.. <table class="column">...
.. <table class="column">...

....
Avatar billede ieconfig Nybegynder
23. november 2006 - 11:09 #1
Se bort fra ovenstående.. :-)
men hvorfor virker dette ikke ?

function stripe() {

        var divs,contDivs,d,table,odd;
      divs=document.getElementsByTagName('table');

    contDivs=[];

    for(var i=0;i<divs.length;i++){
          if(/\bcolumn\b/.test(divs[i].className)){
                d=divs[i];
                contDivs[contDivs.length]=d;
          }
    }

    for(var i=0;i<contDivs.length;i++){
               
            table = contDivs[i];
                odd=1;
           
            tr = table.getElementsByTagName("tr");
            for(j=0;j<tr.length;j++)
            {
                  td = tr[j].getElementsByTagName("td");
                  for(k=0;k<td.length;k++)
                  {
                        if(odd==1){
                        td[k].style.background = "blue";
                        odd=2;
                        }
                        else if(odd==2){
                        td[k].style.background = "red";
                        odd=1;
                  }
            }
         
    } 
}
Avatar billede olebole Juniormester
23. november 2006 - 14:32 #2
<ole>

Hvorfor skriver du ikke, du får en JavaScript-fejl, når du loader siden?

function stripe() {

        var divs,contDivs,d,table,odd;
      divs=document.getElementsByTagName('table');

    contDivs=[];

    for(var i=0;i<divs.length;i++){
          if(/\bcolumn\b/.test(divs[i].className)){
                d=divs[i];
                contDivs[contDivs.length]=d;
          }
    }

    for(var i=0;i<contDivs.length;i++){
               
            table = contDivs[i];
                odd=1;
           
            tr = table.getElementsByTagName("tr");
            for(j=0;j<tr.length;j++)
            {
                  td = tr[j].getElementsByTagName("td");
                  for(k=0;k<td.length;k++)
                  {
                        if(odd==1){
                        td[k].style.background = "blue";
                        odd=2;
                        }
                        else if(odd==2){
                        td[k].style.background = "red";
                        odd=1;
            }
                  }
            }
         
    } 
}

/mvh
</bole>
Avatar billede olebole Juniormester
23. november 2006 - 14:33 #3
- og det manglende tegn var afslutnings-tuborg'en i din sidste 'else if' betingelse
Avatar billede ieconfig Nybegynder
23. november 2006 - 15:14 #4
tak ole - det var en flovmand.. :P
Avatar billede olebole Juniormester
23. november 2006 - 15:29 #5
Hehe ... selvtak - og tak for points  ;o)
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