首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用jQuery传递值的数据属性列表

用jQuery传递值的数据属性列表
EN

Stack Overflow用户
提问于 2015-10-12 13:49:01
回答 3查看 494关注 0票数 1

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

代码语言:javascript
复制
<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>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-12 13:50:03

使用this而不是选择器:

代码语言:javascript
复制
var data = $(this).data('loc');

jsFiddle

票数 1
EN

Stack Overflow用户

发布于 2015-10-12 13:50:02

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

代码语言:javascript
复制
$( "ul.list li > a" ).click(function(e) {
    e.preventDefault();
    var data = $(this).data('loc'); //here
    window.location.hash = (data);
    alert(data);
});

演示

票数 1
EN

Stack Overflow用户

发布于 2015-10-12 13:52:26

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

代码语言:javascript
复制
$( "ul.list li > a" ).click(function(e) {
        e.preventDefault();

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

    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33082886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档