Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get custom attribute value in Jquery?

Tags:

jquery

attr

I have this html

<a data-overlay="Preparing First" href='#'>First link</a>
<a data-overlay="Preparing Second" href='#'>Second link</a>

And JS

$("[data-overlay]").click(function () {
        var text = $(this).val($(this).attr("data-overlay"));
        alert(text);
    });

When I do this, I got only OBJECT, where I got wrong?

Here is working fiddle

http://jsfiddle.net/sruq8kav/

What I need is to alert value of that custom attribute?

like image 352
Miomir Dancevic Avatar asked Dec 03 '22 18:12

Miomir Dancevic


2 Answers

Because you're alerting the result of .val() (and I'm not sure why you're using it) which is a jQuery object - you simply want the attribute:

var text = $(this).attr("data-overlay")
alert(text);
like image 165
tymeJV Avatar answered Dec 26 '22 22:12

tymeJV


In addition to tymeJV's answer, you can also get data- attributes in jQuery with the .data() method.

var text = $(this).data("overlay")
alert(text);

Be aware that doing so will return numbers, Booleans, or objects, if jQuery detects the data to be of that type. You can read more about that here.

like image 22
Scimonster Avatar answered Dec 26 '22 21:12

Scimonster