我有这段代码:
<div class="container">
<div class="switchStatus btn-group" data-module="xxx">
<a class="btn btn-primary">Active</a>
<a class="btn btn-primary">Inactive</a>
</div>
</div>
如何获取data-module
内容?
实际上,我的代码看起来像这样,但它不起作用:
$('.container').on('click', '.switchStatus a', function() {
var module = $(this).data('module');
});
感谢。
答案 0 :(得分:2)
尝试
var module = $(this).parent().data('module');
答案 1 :(得分:1)
在您的点击处理程序回调函数中,this context
将绑定到被点击的<a>
元素。要获取父级,您可以将.closest()
方法与选择器一起使用。它可能如下所示:
$(this).closest("[data-module]").attr("data-module");
答案 2 :(得分:1)
使用最近的('。switchStatus')。
jQuery将回调函数的范围设置为元素 回调的主题
所以我猜这意味着on选择器参数中的元素(在这种情况下为.switchStatus)
$('.container').on('click', '.switchStatus a', function(event) {
var module = $(this).closest('.switchStatus').data('module');
console.log('My name is ' + module)
event.stopPropagation() // always good to stop event bubbles after you have used them.
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="switchStatus btn-group" data-module="Spartacus">
<a class="btn btn-primary">Active</a>
<a class="btn btn-primary">Inactive</a>
</div>
</div>
答案 3 :(得分:0)
试试这个,清除节点'a'
$('.container').on('click', '.switchStatus', function() {
var module = $(this).data('module');
alert(module);
});