I'm trying the new data-function in jQuery but can't make it work.
Here is a little bit of code I use for testing:
HTML
<ul>
<li data-test="list">List item</li>
<li data-test="list">List item</li>
</ul>
<ul>
<li data-name="sida">oko</li>
</ul>
JS
var test = $('li').data('name');
alert(test);
The same thing on jsFiddle: /
I expect to get "sida" from the alert. I found out that it works if I delete the first list. Why is that? How do I solve it?
I'm trying the new data-function in jQuery but can't make it work.
Here is a little bit of code I use for testing:
HTML
<ul>
<li data-test="list">List item</li>
<li data-test="list">List item</li>
</ul>
<ul>
<li data-name="sida">oko</li>
</ul>
JS
var test = $('li').data('name');
alert(test);
The same thing on jsFiddle: http://jsfiddle/w95mY/1/
I expect to get "sida" from the alert. I found out that it works if I delete the first list. Why is that? How do I solve it?
Share Improve this question edited Dec 20, 2015 at 19:48 Brian Tompsett - 汤莱恩 5,89372 gold badges61 silver badges133 bronze badges asked Mar 6, 2011 at 14:58 Jens TörnellJens Törnell 24.8k46 gold badges130 silver badges223 bronze badges1 Answer
Reset to default 7Consider telling jQuery how to find exactly one element. For example, tell it to look for any li
element with a data-name
attribute:
var test = $('li[data-name]').data('name');
alert(test);
Or you can tell it to look for the last li
:
var test = $('li').last().data('name');
alert(test);
Both show an alert with text "sida".