20. maj 2006 - 13:14Der er
13 kommentarer og 1 løsning
Hente alle noder i et træ.
Hej.
Jeg sidder og er ved at lave en rekursiv function der skal løbe alle noder under en bestemt node igennem, og hvis det er en tekstnode, så skal man kunne behandle teksten.
Scriptet skal KUN virke i Firefox, da det er til et plugin.
Jeg er kommet frem til følgende, men det virker ikke
function rf(elm) { e = elm.childNodes; for(a=0;a<e.length;a++) { if (e[a].childNodes.length > 1) { rf(e[a]); } else { // min tekstbehandling } } }
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
1: Det kørte rf() nogle gange den ikke burde 2: Jeg forventede at det løb alle childNodes samt deres childNodes osv.. gennem indtil at jeg stod med et textNode element 3: Der sker noget jeg ikk selv er klar over hvorfor sker. 4: Scriptet finder ikke nogle textnodes
Jeg kan se jeg har delvist dummet mig i det script. Jeg har forsøgt at ændre if (e[a].childNodes.length > 1) { til noget der skulle udelukke IMG, BR og lign tags fra at sætte den rekursive funktion igang, men det lykkedes ikke.
I FF kan man ikke teste, om et element kan have 'børn' eller ej - og da dens DOM-håndtering er noget nær katastrofal, kan man ikke engang teste på, om man selv kan indsætte et element i det (i en try/catch, selvfølgelig). Det kan man nemlig altid i FF, da den intet validerer. F.eks. kan du sætte et billede eller en tabel ind i et input-element ... skooooooooooooooooooood! :o|
Argh, jeg har lige fundet ud af at den side som jeg parser også indeholder noget være slamkode, hvilket er skyld i at jeg ikk kan parse det ordentligt.. Hvornår har man sidst kunnet gøre sådan her: <td></th><td></td>
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.