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' );
    });