Hoi allemaal,

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.

Groeten Donny

<div class="div_row" data-position="Left">
<input name="example1">
</div>
<div id="div_row" data-position="Right">
<input name="example2">
</div>
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?
En (zoals we inmiddels gewend zijn) geeft Donny onvoldoende info.

[size=xsmall]Toevoeging op 18/08/2014 22:29:36:[/size]

PS
data attributes zijn ontwikkeld om zaken simpeler te maken:
[code lang="js"]
alert($(this).parent().data('position'));
[/code]
Ha, ook weer wat nieuws geleerd. Dat gebruik van de data() functie van jQuery kende ik dan weer niet :-)
@erwin, was een overtik voorbeeld foutje :P
@ger, kan wel heel mn class neergooien, maar denk niet dat je van 1000 regels vrolijk word :)
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)

Klopt mn lijstje een beetje?

Reageren