13. september 2001 - 00:27Der er
4 kommentarer og 2 løsninger
Hente ID fra en HTML side via javascript
Er der nogen der ved hvordan man finder alle ID navne i et HTML dokument via javascript?
Jeg er ved at rode med en træ-menu hvor jeg gerne vil have alle elementerne til at folde sig sammen, men da de ikke er nummereret fortløbende skal jeg finde deres respektive navne.
Et link til et fungerende kodeeksempel vil også være fint!
I IE4+ (og ns6+) kan du bruge document.all til at finde alle html-elementer -- men vær opmærksom på, at de sidste 5-15 % er udelukket fra din funktionalitet.
Hvorfor giver du ikke (et trick fra andre omgivelser) dine elementer et identificerbart navn, f.eks. menuSnake, menuJake osv., så kan du altid bruge det i en iterering igennem dine elementer.
Sådan noget som:
function detect(){ for(i=0;document.all.length;i++){ alert(\'Element \'+i+\' hedder \'+document.all[i].id); }
Det lyder ikke helt tosset, men det ser ud til at \"for\" løkken løber ud over antallet af elementer. Der kommer i hvert fald en fejl selv om jeg også beder den løbe til \'length -1\'
I koden herunder skulle der kun komme alerts hvis id for et element er noget med \"indlaeg_\" - eller har jeg lavet en fejl? For der kommer en alert for hvert eneste element i dokumentet.
grunden til at for-løkken løber \'for langt\' er at der ikke er en korrekt betingelse i midtfeltet document.all.length evaluerer til et tal forskellig fra 0 og dermed altid sand. en slåfejl. brug: for (i=0; document.all.length > i; i++ ){
i din sammenligning er parameteren til funktionen indexOf \'indlaeg_\'!=-1 det er en sammenligning der giver sand altid så det du reelt skriver er if(document.all[i].id.indexOf(\'true\')) flyt sammenligningen ud af parameter-parentesen: if(document.all[i].id.indexOf(\'indlaeg_\')!=-1)
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.