Javascript 从jQuery中单击的父级获取值
我有以下代码:Javascript 从jQuery中单击的父级获取值,javascript,jquery,Javascript,Jquery,我有以下代码: <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> </d
<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>
谢谢。试试看
var module=$(this.parent().data('module')代码>试试看
var module=$(this.parent().data('module')
在单击处理程序回调函数中,此上下文将绑定到已单击的
元素。要获取父级,您可以使用带有选择器的.closest()
方法。它可能如下所示:
$(this).closest(“[数据模块]”).attr(“数据模块”)
在单击处理程序回调函数中,此上下文将绑定到已单击的
元素。要获取父级,您可以使用带有选择器的.closest()
方法。它可能如下所示:
$(this).closest(“[数据模块]”).attr(“数据模块”)代码>尝试此操作,去掉节点“a”
$('.container').on('click', '.switchStatus', function() {
var module = $(this).data('module');
alert(module);
});
尝试此操作,去掉节点“a”
$('.container').on('click', '.switchStatus', function() {
var module = $(this).data('module');
alert(module);
});
使用最近的('.switchStatus')
jQuery将回调函数的作用域设置为
回调的主题
所以我猜这意味着on选择器参数(.switchStatus a在本例中)中的元素
$('.container')。在('单击','切换状态a',函数(事件){
var module=$(this).closest('.switchStatus').data('module');
log('我的名字是'+模块)
event.stopPropagation()//在使用事件气泡后,停止它们总是很好的。
});代码>
活跃的
不活跃的
使用最近的('.switchStatus')
jQuery将回调函数的作用域设置为
回调的主题
所以我猜这意味着on选择器参数(.switchStatus a在本例中)中的元素
$('.container')。在('单击','切换状态a',函数(事件){
var module=$(this).closest('.switchStatus').data('module');
log('我的名字是'+模块)
event.stopPropagation()//在使用事件气泡后,停止它们总是很好的。
});代码>
活跃的
不活跃的
模块属性位于父级上。。。。。不是anchormodule属性在父项上。。。。。不是锚定.closest()
几乎总是优于.parent()
,因为它不需要特定的层次结构,使得以后修改DOM更容易,而无需重写所有javascript选择器。@mhodges,我同意。然而,在这种情况下,父类只是一个包装div,包含两个hyperlinka
标记,不应该部分更改。我同意你的观点,但开发人员应该始终致力于编写尽可能经得起未来考验的代码。也没有什么好的理由(尤其是在这种情况下)不这样做。.closest()
几乎总是比.parent()
更受欢迎,因为它不需要特定的层次结构,使得以后修改DOM更容易,而不必重写所有javascript选择器。@mhodges,我同意。然而,在这种情况下,父类只是一个包装div,包含两个hyperlinka
标记,不应该部分更改。我同意你的观点,但开发人员应该始终致力于编写尽可能经得起未来考验的代码。也没有理由(特别是在这种情况下)不这样做。