<ul id='langs'> <li data-val='en'>english</li> <li data-val='fr'>francais</li> <li data-val='it'>italiano</li> </ul> cuando el usuario hace clic en cualquiera de estos <li> quiero alert() es el valor del atributo data-val
alguien sabe como?
$('li').click(function () { alert($(this).data('val')); });Ver DEMO .
Tenga en cuenta que si desea usar la sintaxis de la función de flecha ES6, no puede usar this y necesita usar e.currentTarget en su lugar, donde e es el objeto de evento pasado como el primer parámetro al controlador de eventos:
$('li').click(e => alert($(e.currentTarget).data('val')));Ver DEMO .
Esto debería hacer el trabajo:
$(document).ready(function() { $('#langs li').click(function() { alert($(this).attr('data-val')); }); });Eche un vistazo a los documentos
$('li').click(function() { alert($(this).attr('data-val')); });