Toon posts:

[Javascript] Met for loop en DOM eigenschappen toewijzen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer dmv javascript eigenschappen toe te wijzen aan bijvoorbeeld links. De div breadCrumb is gevuld met een aantal links zonder doel (anchors?):
code:
1
2
3
4
5
6
7
8
9
10
function(){
    var menu = document.getElementById('breadCrumb');
    var children = menu.childNodes;
    for(var i=0;i<children.length;i++){
        children[i].onmouseover = menu_mouseover;
        children[i].onmouseout = menu_mouseout;
        children[i].page = children[i].innerHTML;
        children[i].onclick = open_page;
        
    }

Nu werkt dit voor de eerste link, maar daar houdt het ook mee op. Wat doe ik hier fout?

Het zal vast wel een ontzettende noob vraag zijn, maar vergeef het me, ik begin pas met javascript (ivm ajax) en dacht daarvoor dat javascript alleen voor overbodige zaken als popups gebruikt werd. :P

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 02:15

crisp

Devver

Pixelated

javascript hoort in Webdesign & Graphics ;)

Verder moet je binnen je loop kijken of je node wel een anchor-element is (en niet bijvoorbeel een text-node).
Daarnaast vraag ik me af wat de bedoeling is van de page-property...

[ Voor 3% gewijzigd door crisp op 20-02-2006 12:56 ]

Intentionally left blank


Verwijderd

Topicstarter
Sorry, dat wist ik niet.

Dit is zowiezo nog maar een opzetje, controle op bijvoorbeeld de type node komt er wel. De page eigenschap wordt doorgegeven aan de functie 'open_page' om de pagina via de XMLhttpRequest op te vragen.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 02:15

crisp

Devver

Pixelated

Dit werkt bij mij prima in een simpele testcase met meerdere links:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
    var menu = document.getElementById('breadCrumb');
    var children = menu.childNodes;
    for (var i=0; i < children.length; i++)
    {
        if (children[i].nodeType == 1 && children[i].tagName.toLowerCase() == 'a')
        {
            children[i].onmouseover = menu_mouseover;
            children[i].onmouseout = menu_mouseout;
            children[i].page = children[i].innerHTML;
            children[i].onclick = open_page;
        }
    }

Intentionally left blank