获取数据属性值onclick链接/按钮

时间:2013-12-12 10:03:03

标签: jquery html5

<span class="btn btn-block btn-inverse btn-icon glyphicons home" id="changeb" data-datac="daily"><i></i>Daily</span>
            <span class="btn btn-block btn-inverse btn-icon glyphicons home" id="changeb" data-datac="1week"><i></i>1 Week</span>
            <span class="btn btn-block btn-inverse btn-icon glyphicons home" id="changeb" data-datac="monthly"><i></i>Month</span>
            <span class="btn btn-block btn-inverse btn-icon glyphicons home" id="changeb" data-datac="3Month"><i></i>3 Month</span>

jquery是

$('#changeb').click(function() {

        var d = $(this).data('datac');      
        alert(d);   
} );

我需要在点击事件

上获取data-datac值

6 个答案:

答案 0 :(得分:12)

你的代码很好,你有相同的id,多于一个元素,这是无效的。该事件将绑定到第一个元素,其中DOM中包含ID。使用公共类而不是id来绑定事件。您可以使用class selector绑定事件。

<强> Live Demo

$('.btn').click(function() {
      var d = $(this).data('datac');      
      alert(d);   
});

答案 1 :(得分:7)

这应该可以解决问题:

var d = $(this).attr("data-datac");

此外,您需要更改HTML以为每个元素分配一个单独的ID。但是,为许多不同的id绑定点击事件可能是一项繁琐的工作。所以我将它绑定到一个单独的类。例如:

<强> HTML

<span class="btn btn-block btn-inverse btn-icon glyphicons home dateChanger" id="changeb1" data-datac="daily"><i></i>Daily</span>
<span class="btn btn-block btn-inverse btn-icon glyphicons home dateChanger" id="changeb2" data-datac="1week"><i></i>1 Week</span>
<span class="btn btn-block btn-inverse btn-icon glyphicons home dateChanger" id="changeb3" data-datac="monthly"><i></i>Month</span>
<span class="btn btn-block btn-inverse btn-icon glyphicons home dateChanger" id="changeb4" data-datac="3Month"><i></i>3 Month</span>

<强>的Javascript

$(".dateChanger").click(function () {
    var d = $(this).attr("data-datac");
    alert(d);
});

答案 2 :(得分:1)

简单......

 var data_value = $(this).attr("data-datac");

答案 3 :(得分:1)

您无法将所有元素设置为唯一id。这就是为什么它只发生在第一个元素上。

答案 4 :(得分:0)

您可以使用attr中的jquery

获取元素的属性值
$('.home').on('click', function() {

    var d = $(this).attr('data-datac');      
    alert(d);   
});

F.Y.I

如果您使用id's作为选择器,您只能在class上获得一个元素,您可以参考包含该类的所有元素

答案 5 :(得分:0)

为每个元素使用唯一ID

var d=$(this).attr('data-datac');