A javascript egy elég keszekusza nyelv – aki foglalkozott már vele tudja miről írok. A keszekuszaságban vannak esetek, amikor jQuery barátunkkal objektumokon végzünk módosításokat, amik egy bizonyos function-ökben történnek. Biztos megfigyeltétek már: ha a function-nek van paramétere akkor a külső változók nem látszanak a function-ön belüli részek számára.
Agyaltam jó sokat, hogy hogyan lehetne e problémát kiküszöbölni – aztán megvilágosodtam.
Megoldás: set/get property írás/olvasás a html elemeken.
Használjuk az .attr() jQuery függvényt:
$("#akarmi").attr("data-post_id", "5");
Az .attr() metódusnak két „üzemmódja” van.
Ha egy paramétert kap akkor property olvasás van, ha két paraméter akkor key-value értékadás/beállítás.
Tehát a
<div id="akarmi">...</div>
elem a fenti js kód lefutása után lényegében így fog kinézni:
<div id="akarmi" data-post_id="5">...</div>
Amit aztán a
.attr("data-post_id")
metódussal vissza kiolvashatunk.
Hát nem egyszerű? 🙂