Onderstaand een klein stukje code. Als ik op input name example click, wil ik de data-position pakken van het parent. Dus example1 resulteert in Left en example2 in Right.
Ik weet dat ik $(this). iets moet gebruiken maar kom er niet uit. Bij de functie .find('.div_row') krijg ik altijd de data-position Left. Bij .parents() krijg ik niks, bij .parent() niks en bij .closest() krijg ik ook nils.
Volgens mij zouden de volgende allebei moeten werken:
[code lang=js]
$('input').click(function(){
alert($(this).parent().attr('data-position');
});
//of
$('input').click(function(){
alert($(this).closest('div').attr('data-position');
});
[/code]
Opvallend trouwens dat de een een class heeft 'div_row' en de ander een id 'div_row'. Foutje bij het overtikken, of heb je dat echt zo?
Ik ben in verwarring, verklaar class (wss niet een js object)
Maar om op je vraag antwoord te geven jQuery.find geeft altijd het eerst gevonden element terug.
Class was inderdaad niet mn js object. Mn class is een HTML renderer, erg belangrijk voor een bepaald onderdeel dat ik gebruik in mn komende website (binnenkort zien jullie daar meer over :) )
Maar oke, even kijken of ik het goed heb:
.find() zoekt vanaf huidige element naar beneden
.parent() pakt de eerste parent van het huidige element
.parents() pakt de opgegeven class/id naar boven tot ie de parent heeft bereikt met het id/class dat is opgegeven
.closest() kan ik niet echt uitleggen (misschien dat jij het kan voor degene die dit lezen)