14. juni 2008 - 13:50Der er
10 kommentarer og 1 løsning
JavaScript: multiple ID
Jeg er ved at opbygge en side, hvor jeg har en menu, hvor hvert menu-element har en submenu som skal komme frem, når man klikker på menu-elementet. Mine submenuer ligger i hver deres div:
<div id="leftmenuSub" style="display:none;">
ID'et bliver brugt til at få den rigtige style fra mit stylesheet. Mit problem er, at når jeg klikker på menu elementet, så vil jeg gerne have at alle submenuer, altså divs med id="leftmenuSub", får display=none så alle er skjule ingen man viser den pågældende submenu. Jeg håbede derfor at getElementById('leftmenuSub') ville returnere et array med alle disse, men det ser ikke ud til at være tilfældet :(
Du kalder dem: <div id="leftmenuSub0" style="display:none;"> <div id="leftmenuSub1" style="display:none;"> ... Så bruger du getElementsByTagName('div'), løber listen igennem, og gør noget ved dem der her en id, der starter med 'leftmenuSub'
var aLeftmenuSub=[]; for(var i=0,im=document.getElementsByTagName("*");i<im.length;i++)if(im[i].className=="leftmenuSub")aLeftmenuSub.push(im[i]);
På den måde vil du ende med at have alle elementer med class="leftmenuSub" i array'et aLeftmenuSub! Bemærk dog at ovenstående kode naturligvis først skal køres, når alle elementer på siden er genereret.
- men du kan somregel lave en mere effektiv søgning. I stedet for at søge i hele dokumentet med: im=document.getElementsByTagName("*");
- så prøv at præcissere søgningen med f.eks: im=document.getElementById("menu").getElementsByTagName("*");
Her søger jeg kun mellem elementer, som ligger i elementet med ID'en 'menu' =)
/mvh </bole>
Synes godt om
Ny brugerNybegynder
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.