De div waarin een element zit krijgen

Status
Niet open voor verdere reacties.

Remi321

Gebruiker
Lid geworden
2 mrt 2010
Berichten
179
Ik heb geen idee hoe ik de div waarin een element zit kan krijgen door middel van javascript. Momenteel ben ik belachelijk bezig, maar het werkt. Het zou alleen veel fijner zijn als dit dus makkelijker kan; door de div van het element op te vragen.

Momenteel heb ik bijvoorbeeld dit stukje code
Code:
if ( event.target == buttons || event.target.parentNode == buttons || event.target.parentNode.parentNode == buttons || event.target.parentNode.parentNode.parentNode == buttons ) { block }
Zoals je ziet zou dit makkelijker zijn als ik dus de div van het element kan krijgen.

Heeft iemand een idee?
 
Eh, ik neem aan dat je dus in een event hanlder zit? En, kan je eens een voorbeeld geven (HTML en JS), want je huidige code zegt niet zoveel.
 
Eh, daar wordt het niet veel beter van. Wat precies wil je bereiken? Ik zie dat je de div opvraagt via getElementById, waarom dit niet gebruiken?

Op het moment geef je het window een onmouseover (?), want je specificeert niet een bepaald element (regel 8 van Javascript). Oh, en je HTML is leuk enzo, maar wat doen de onInputFocus en onInputBlur dingetjes?

Heb je toevallig een live demo ergens staan? Als in, een test-pagina met de complete source?
 
Ik snap niet waarom je dat allemaal nodig hebt.. Het is een stukje code die ik wil verbeteren, iets waar geen enkel ander stukje van mijn code iets mee te maken heeft. Zoals onInputFocus en onInputBlur, waarom hiernaar kijken? Deze werken, zijn geen probleem, en zijn niet van toepassing op dit onderwerp..

Daarnaast, tuurlijk ik kan enkel de div gebruiken en die vergelijken met de target. Maar dan moet mijn div leeg zijn, want de tekst erin zijn ook elementen. Van deze tekst wil ik dus zien in welke div ze zitten d.m.v. javascript, thats all I need to know.
 
Ik snap niet waarom je dat allemaal nodig hebt.. Het is een stukje code die ik wil verbeteren, iets waar geen enkel ander stukje van mijn code iets mee te maken heeft. Zoals onInputFocus en onInputBlur, waarom hiernaar kijken? Deze werken, zijn geen probleem, en zijn niet van toepassing op dit onderwerp..

Nou, ik volg(de) je vraag niet, dus als je dan willekeurige stukjes code geeft (die er blijkbaar niet toe doen...?) dan is dat alleen maar meer verwarring, hm?



Daarnaast, tuurlijk ik kan enkel de div gebruiken en die vergelijken met de target. Maar dan moet mijn div leeg zijn, want de tekst erin zijn ook elementen. Van deze tekst wil ik dus zien in welke div ze zitten d.m.v. javascript, thats all I need to know.

Ah, op die manier. Well, lees hier eens bij over het idee van event bubbling, that should get you started.



Overigens kan je gewoon kijken wat voor 'type' een element is:

[js]document.getElementById('parent').addEventListener('mouseover', function(e)
{
if(e.target.nodeName == 'DIV')
{
alert(e.target.id); // zitten in een div
}else{
alert(e.target.parentNode.id); // zitten niet in een div
}
}, false);[/js]

als je 'diepere' nodes hebt kan je recursief werken (met een speciale functie); zoiets:

[js]function getParentDiv(elem)
{
if(elem.nodeName == 'DIV')
{
return elem; // 't is een div
}else{
return getParentDiv(elem.parentNode); // geen div, dus probeer nog eens met de parent
}
}[/js]
 
Laatst bewerkt:
Bedankt, de getParentDiv code was precies wat ik nodig had :) Jammer dat er geen native functie voor is dan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan