Archief - JS : index van DOM object bekomen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Lint

Legacy Member
Is het mogelijk om de index van een bepaalde child te op te vragen? Bvb een list :

Code:
<ul>
  <li>list item 1 <input type="button" value="bla" onClick="alert(this.parentNode.????)"></li>
  <li>list item 2 </li>
  <li>list item 3 </li>
</ul>

Bij de klik op de knop zou er dus opgevraagd moeten worden de hoeveelste child dit list item is van de list ( wat "0" zou moeten zijn ).
Wat moet ik in de plaats van ???? zetten om dit te bekomen?
Moest iemand mij weten zou het mij veel vooruit helpen :).

maT'

Legacy Member
Hier vindt je een voorbeeldje over hoe je de list-items individueel kan aanspreken. (in dit geval dan om een mouse-over te simuleren)
scroll even door naar DOM-based scripting to the rescue en je zal je oplossing wel vinden.

Lint

Legacy Member
Hmmmm dit is toch niet echt wat ik moet hebben.
Ik weet wel hoe ik de childnodes kan aanspreken en ( in mijn voorbeeld ) dat de eerste listitem childnodes[0] zou zijn, maar ik zou een methode moeten hebben hoe ik dynamisch kan opvragen wat de index van een list item is ( 0 in geval van het eerste dus ).

Voor zover ik weet is dit niet mogelijk buiten door elk list item te overlopen met een for lus, en de inhoud te vergelijken totdat ge uitkomt bij de juiste inhoud/list item. Maar stel dat ge bvb met een list met 1000 items zit, dan is dit niet echt handig.

Maar wat ik mij af vroeg is of er niet een methode bestond om rechtstreeks het index nummer op te vragen zoals bij een table, waar ge met item.cellIndex en item.rowIndex rechtstreeks de indexen kunt opvragen.

In elk geval toch bedankt hoor :).

servi

Legacy Member
ik betwijfel ten zeerste of dit gaat.

Dit staat immers nergens in het DOM vermeld, dus als je al een methode zou vinden gaat het zeker niet werken in alle browsers.


Wat je misschien wel kan doen is al die items een id geven als volgt :
<ol>
<li id="li_item_0">item 1</li>
<li id="li_item_1">item 2</li>
....
</ol>

Maar een grote verbetering tegenover systematisch alle <li>s aflopen is het niet echt.


ah ja als je u afvraagt wat je wel van een object kunt opvragen heb ik volgende 2 interessante links :

quickreference : http://www.dannyg.com/ref/jsquickref.html
DOM reference : http://www.mozilla.org/docs/dom/domref/dom_el_ref.html

Lint

Legacy Member
servi zei:
ik betwijfel ten zeerste of dit gaat.

Dit staat immers nergens in het DOM vermeld, dus als je al een methode zou vinden gaat het zeker niet werken in alle browsers.


Wat je misschien wel kan doen is al die items een id geven als volgt :
<ol>
<li id="li_item_0">item 1</li>
<li id="li_item_1">item 2</li>
....
</ol>

Maar een grote verbetering tegenover systematisch alle <li>s aflopen is het niet echt.


ah ja als je u afvraagt wat je wel van een object kunt opvragen heb ik volgende 2 interessante links :

quickreference : http://www.dannyg.com/ref/jsquickref.html
DOM reference : http://www.mozilla.org/docs/dom/domref/dom_el_ref.html

Ok thx, ik twijfelde zelf ook heel sterk of het wel mogelijk is, daarmee dat ik het voor de zekerheid eens hier kwam vragen.
Al die DOM references ken ik al allemaal hoor, ik kom niet zomaar iets vragen dat makkelijk te vinden is :).
En de oplossing met id's heb ik ondertussen al gebruikt maar idd, echt handig is het niet. Maar toch zeker beter dan uw lijst altijd moeten overlopen imo.
Gewoon in het vb dat ge met een lijst van 1000 items zit, als ge daar telkens uw lijst moet overlopen, dan is uw javascriptje wel ff onderweg, terwijl bij id's we er direct naar kunnen springen.
Toch bedankt hoor, nu kan ik tenminste gerust verder werken, wetende dat er geen andere/betere manier is :).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan