[JS]Id vinden van een ouderobject

Pagina: 1
Acties:

  • Denhomer
  • Registratie: Augustus 2000
  • Laatst online: 12-10-2025
Ik ben al een hele dag aan het zoeken hoe dit moet, google weet geen antwoord.

Ik heb een tabel steken in een span(deze is een aparte layer) en nu wil ik in 1 cel van deze tabel de id van de span hebben voor een bepaalde javascript function
Stukje code:
code:
1
2
3
4
5
6
7
8
<span id='layername'>
<table cellspacing=0 cellpadding=0 height="300" width="500">
<tr>
<td width="135" height="10" background="header.png"></td>
<td width="339"></td>
<td width="26" background="closer.png" 
      onClick="hidelayer(?????????????????????);"></td>
</tr>

Op de plaats van de ?'s zou dus de id van de span moeten komen 'layername' dus.
Maar dan wel via code, zodat dit altijd werkt wat de layernaam ook is.
ik d8 eerst dit: this.parentElement.parentElement.parentElement.id
maar dit werkt natuurlijk niet.
Dus als iemand me even kan uitleggen welke weg ik moet volgen ?

[ Voor 58% gewijzigd door Denhomer op 14-03-2003 21:32 . Reden: Layout was een beetje verneukt ]


Verwijderd

Wat als je het tabel een naam en/of id geeft, en vervolgens een stap omlaag gaat krijg je dan niet die span-tag? Ik heb geen flauw idee of dat kan hoor... tisch maar ideetje

  • Denhomer
  • Registratie: Augustus 2000
  • Laatst online: 12-10-2025
Ok, op een chatkanaal hebben ze me kunnen helpen, ff voor het nageslacht:

Juiste oplossing was this.parentNode.parentNode.parentNode.parentNode.id
Dit omdat ik geen rekening had gehouden met <tbody> de tag die automatisch wordt toegevoegd aan een tabel

[ Voor 81% gewijzigd door Denhomer op 14-03-2003 22:17 ]


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
JavaScript doen we in /13, omdat dat meer bij de grafische tak hoort :)
P&W-> W&G

Verwijderd

getElementById() geen oplossing? Je zou ook "this" mee kunnen sturen lijkt me.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
JavaScript:
1
2
3
4
5
6
7
8
function fnGetParent(objElement, strTagName)
{
    while ((objElement.tagName != strTagName) && (objElement != 'BODY'))
    {
        objElement = objElement.parentNode;
    }
    return objElement ? objElement : null;
}

code:
1
hidelayer(fnGetParent(this, 'SPAN').id)

zoiets ? (evt kun je false returnen ipv van null, wat jij wil)

[ Voor 14% gewijzigd door r0bert op 15-03-2003 13:45 ]


Verwijderd

in het algemeen dus gewoon parentNode.id, want dat geouwehoer om de body heen is in dit geval niet nodig.

trouwens wat je nu waarschijnlijk gaat doen is het id opvragen en vervolgens met getElementById het object weer opvragen om hem vervolgens te hiden zeker? Als je dat nu eens gewoon direct doet...

onclick="this.parentNode.style.display = 'none';" bijvoorbeeld

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Verwijderd schreef op 15 March 2003 @ 11:20:
in het algemeen dus gewoon parentNode.id, want dat geouwehoer om de body heen is in dit geval niet nodig.

trouwens wat je nu waarschijnlijk gaat doen is het id opvragen en vervolgens met getElementById het object weer opvragen om hem vervolgens te hiden zeker? Als je dat nu eens gewoon direct doet...

onclick="this.parentNode.style.display = 'none';" bijvoorbeeld
Waarschijnlijk wel handig om eerst te checken of je een textnode te pakken hebt, en in dat geval daar dan weer de parent van te nemen.

Verwijderd

hij clickt op een td, dus da's niet nodig. Trouwens, d'r moet een paar keer parentNode extra tussen, want hij moet een heel stuk terug in z'n tree, zie ik nu ik z'n post wat beter lees.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Vandaar de functie die ik had geschreven, dat voorkomt een hele berg met parentNode geklooi..
Pagina: 1