31. oktober 2007 - 16:33Der er
9 kommentarer og 1 løsning
God document.all ?
Hej Eksperter.
Jeg vil gerne gennemløbe alle elementer på min side. Jeg har bakset lidt med nogle ChildNodes også noget rekursivt kald, men det virker ikke helt.. Så opdagede jeg at document.all indeholder alle elementer på siden, og man derfor kunne gennemløbe den i stedet. Dog ved jeg også at document.all er en gammel kode, og den vidst slet ikke virker i FF.
Findes der en ny moderne crossbrowser kode som gør det samme som document.all, eller er der nogen der har en kode der gennemløber alle elementer?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Jeg har et element i et array. Dette har en outerHTML.
Så har jeg et andet array, hvor jeg concat'er det første array på. Så hvis jeg alerter det første element i det nye arrays outerHTML, er den undefined :S:S
Jeg føler mig lidt alene i denne tråd, så jeg håber nogen kan hjælpe :P
getElementsByTagName("*") er helt valid - og ligeså dårlig som document.all :)
Man kan uden tvivl lave en mere specifik/direkte (og dermed bedre) søgning. Kan man ikke det, vil jeg mene, du har problemer med strukturen i din kode.
Hvis man f.eks. ønsker at finde alle danske, rødhårede bøsser mellem 30 og 34 år, der tygger skrå, er vilde med Motorhead og går i Vans sko, er det ikke hensigtsmæssigt at indkalde _alle_ danske mænd og derefter filtrere dem. En stor del af filtreringen må kunne ske inden indkaldelsen ;o)
Et eksempel på et rekursivt kald, der finder bestemte noder:
var txts = []; window.onload = function(){ var rootElm = window.documentElement?window.documentElement : document.body; txts = testChilds(rootElm,txts); alert(txts[0].nodeValue); } function testChilds(elm,txts){ var elms = elm.childNodes; for(var i=0,im=elms.length;im>i;i++){ switch(elms[i].nodeType){ case 1: txts = testChilds(elms[i],txts); break; case 3: if(elms[i].nodeValue && elms[i].nodeValue.length > 1) txts.push(elms[i]); break; default: } } return txts; }
-- det er lavet for at vise, hvordan man finder tekst-noder, men rekursionen må du kunne bruge !-)
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.