使用jQuery传递值的data-属性列表

时间:2015-10-12 13:49:01

标签: jquery custom-data-attribute

我有一个数据属性列表,但是,jquery只获取第一个列表值,当点击第二个或第三个“test”时,警报只显示“house”。 http://jsfiddle.net/ar1bd4bj/2/

<ul class="list">
    <li>
<a  data-loc="house" href="#">test</a>        
    </li>
<li>
<a  data-loc="house-2" href="#">test</a>
</li>
    <li>
<a  data-loc="house-3" href="#">test</a>
</li>
</ul>

<script>

$( "ul.list li > a" ).click(function(e) {
    e.preventDefault();

    var data = $('ul.list li > a').data('loc');
     window.location.hash = (data);
    alert(data);

});
</script>

3 个答案:

答案 0 :(得分:1)

使用$(this)来引用当前点击的element

$( "ul.list li > a" ).click(function(e) {
    e.preventDefault();
    var data = $(this).data('loc'); //here
    window.location.hash = (data);
    alert(data);
});

<强> DEMO

答案 1 :(得分:1)

使用this代替选择器:

var data = $(this).data('loc');

jsFiddle

答案 2 :(得分:0)

您当前的代码总是选择第一个匹配的元素并显示结果,我修改了代码以从单击的元素中选择数据。

$( "ul.list li > a" ).click(function(e) {
        e.preventDefault();

        var data = $(e.target).attr('data-loc');
         window.location.hash = (data);
        alert(data);

    });