<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值答案 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');