Using jQuery closest()
Using closest() works a lot better than chained parent() calls.
HTML
<div data-foo="bar">
<p>Please <a href="#">click</a></p>
</div>
CSS
body {
font: 0.8em "Georgia" serif;
margin: 2em;
}
ul {
list-style-type: none;
padding-left: 0;
}
JavaScript
$( 'a' ).on( 'click', function( e ) {
var foo = $( e.currentTarget )
.closest( 'div' )
.data( 'foo' );
});