Toon posts:

[JS] DOM eigenschappen childnodes opvragen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik maak d.m.v. een lus een aantal divjes aan en geef ze een innerHTML mee:

JavaScript:
1
2
3
4
5
6
7
var aText = new Array(sText.length);
        
for (i = 0; i < sText.length; i++)
{ 
    aText[i] = document.createElement('div');
    aText[i].innerHTML = sText.substr(i, 1);
}

Vervolgens koppel ik een aantal van de bovengenoemde elementen aan de body van mijn document:

JavaScript:
1
2
document.body.appendChild(aText[0]);
document.body.appendChild(aText[1]);

Nu zou het het mooiste zijn als ik d.m.v. onderstaande constructie alle toegevoegde elementen zou kunnen aflopen:

JavaScript:
1
2
3
4
for (i in document.body.childNodes.aText)
{
    alert(document.body.childNodes.aText[i].innerHTML);
}

Echter lijkt dit niet te kunnen. Daarom vraag ik me af of iemand mij kan zeggen of het uberhaupt mogelijk is om de toegevoegde elementen op te vragen?

Ik weet verder dat je natuurlijk ook names/id's kunt meegeven met de nieuw aangemaakte elementen om ze te benaderen, maar dat vind ik wat omslachtig als het niet persé noodzakelijk is.

NB Ik wil dus van te voren een zooi divjes aanmaken waarvan ik er een paar aan de body koppel.

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

code:
1
2
3
4
for (var i = 0; i <document.body.childNodes.length; i++)
{
  alert(document.body.childNodes[i].innerHTML);
}

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
@TS wat zit er allemaal in die sText string:? als daar namelijk alleen maar tekst in staat dan kun je beter een textNode creeren en die appenden aan je divje

dus:
code:
1
2
3
  var objDiv = document.createElement('div');

  objDiv.appendChild(document.createTextNode('dit is de echte DOM methode'));

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

En om zonder id's/names te werken kun je ook het volgende doen:

code:
1
2
3
4
bla[0] = document.body.appendChild(aText[0]);
bla[1] = document.body.appendChild(aText[1]);

alert(bla[0].innerHTML);

Verwijderd

die aText is toch geen property van childnodes, het is gewoon een globale array

alert(aText[i].innerHTML); zal wel werken

@andre: da's wel dubbelop

[ Voor 11% gewijzigd door Verwijderd op 16-11-2004 13:17 ]


Verwijderd

Topicstarter
Hartelijk dank voor de reacties! Ik gebruik nu die manier van André (het opslaan van de geretourneerde handle in een variabele) i.c.m. de tip van faabman.

'sTest' is inderdaad een zelfgedefinieerde variabele. ;)
Pagina: 1