Avatar billede hoppe11 Nybegynder
07. december 2009 - 14:04 Der er 2 kommentarer og
1 løsning

getElementsByTagName - kun første subtree

hej

jeg har et lille script som skal smide en style på alle td's i en bestemt tr med et id... dog har jeg i nogle af mine td's i den pågældende tr flere table's og det giver mig problemer.. der kommer en style på samtlige td's..

jeg forsøger at tjekke om foregående tr har det rigtige id, men det virker ikke?

function get_parent(elm, tag_name)
{
    if(elm.tagName)
    {
        tag_name = tag_name.toLowerCase();
        for(; elm.tagName.toLowerCase()!=tag_name; elm=elm.parentNode);
       
        return elm;
    }
}



    var tr = document.getElementById('tr'+id);
   
    var tst = [];
    var td_arr = tr.getElementsByTagName('td');
    for(var i=0; i<td_arr.length; i++)
    {
        var td_curr = get_parent(td_arr[i], 'tr');
        if(td_curr.id = 'tr'+id)
        {
            td_arr[i].style.background = '#ff0000';
            tst[tst.length] = 'id = '+td_curr.id;
        }
    }
    alert(tst.join('\n'));
Avatar billede Slettet bruger
07. december 2009 - 14:21 #1
Brug childNodes i stedet (ikke testet):

    var tr = document.getElementById('tr'+id);
   
    var tst = [];
    var td_arr = tr.childNodes;
    for(var i=0; i<td_arr.length; i++)
    {
        td_arr[i].style.background = '#ff0000';
        tst[tst.length] = 'id = '+td_curr.id;
    }
    alert(tst.join('\n'));
Avatar billede hoppe11 Nybegynder
07. december 2009 - 15:35 #2
tak for hjælpen.. smid et svar :)
Avatar billede Slettet bruger
07. december 2009 - 16:42 #3
Svar :P
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