Toon posts:

[DHTML] crossbrowser gedonder

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik ben bezig met een tabblad geval in DHTML, dat ziet er ongeveer als volgt uit
PHP:
1
2
3
4
5
6
7
8
<div>
  <input />
  <input />
  <input />
  <div />
  <div />
  <div />
</div>


evenveel inputs als div's dus klikken op het input moet de bijbehorende div op display: block zetten en de rest op none;

op zich simpel, maarrr aangezien er dynamisch meerdere tabpanels worden gegenereerd heb ik ervoor gekozen al deze dingen geen id te geven en ik wil dus door het DOM naar de juiste node wandelen.

dit doe ik nu door de inputs onclick="setTabPanel(this,tabnr)" mee te geven.
In die functie bepaal ik de parentNode van this, da's dus de omhullende div, en om het aantal tabs te bepalen doe ik dan childNodes.length / 2

vervolgens wil ik dus met childNodes.item(tabnr).style.display = 'block'; de juiste div laten zien (en de rest via een loopje allemaal uitzetten)

nu krijg ik dus een error dat het object ...style leeg is. Als ik een MSIE benadering doe en childNodes.item(i) vervang door children[i] werkt het alleen in MSIE (6)

een ander dingetje dat ik heb geprobeerd was om this niet mee te geven maar uit het event object te halen (in MSIE event.srcElement) maar in mozilla wordt het event obect als parameter meegegeven en die bevat op zich wel een srcElement, maar als ik dan de parentNode daarvan wil hebben werkt het weer niet.

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

je zou dan toch ook alleen een id mee kunnen geven...
input 1
input 2
input 3
div 1
div 2
div 3

en dan door een functie met dat nummertje die dan de div laat zien of niet :)

anders zou je er ook doorheen kunnen lopen met getElementByTagName, alleen dan moet je oppassen met te veel divjes :)

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Topicstarter
d'r kunnen meerdere tabbladen in 1 document komen, dus dan zijn je id's dubbel, vandaar. Maar volgens mij zou je dus op bovenbeschreven manier ook door de nodes kunnen lopen, maar dat wil dus niet echt... (parentNode, childNodes.item(i) is toch gewoon DOM?)

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

je kan je id`s toch ook door laten lopen? ander tabblad begint @ 23 oid

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Topicstarter
zo is het natuurlijk wel op te lossen, maar toch wil ik graag weten waraom het zo niet werkt :P

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

zet voor de gein es
HTML:
1
2
    alert(document.body.childNodes.length);
    alert(document.body.children.length);
in je js ;)

[ Voor 8% gewijzigd door disjfa op 05-02-2003 21:08 ]

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Topicstarter
hmz. ik deed effe obj.parentNode.childNodes.length en ook children en het scheelt 1 node :? waardoor komt dat nou weer? de lengte van childNodes is 1tje meer namelijk, en d'r zitten toch echt 6 elementen in, niet 7.

[ Voor 31% gewijzigd door Verwijderd op 05-02-2003 21:34 ]

Pagina: 1