Javascript 在父元素中使用jQuery获取数据属性的值

Javascript 在父元素中使用jQuery获取数据属性的值,javascript,jquery,parent,Javascript,Jquery,Parent,我有下面的HTML代码,其中单击的 试验 试验 请参见下面我的js尝试: $('.spot info')。单击(函数(e){ e、 预防默认值(); var test=$(this.parent().parent().data('data-test'); 控制台日志(测试); }); 此测试在控制台中记录未定义的。我认为这可以检查.spot info的父对象的父对象 还有,有没有办法将许多父(0)方法链接在一起,而不是使用jQuery。尝试attr。此外,请尝试“最近”而不是两次引用父对象

我有下面的HTML代码,其中
单击


试验
试验
请参见下面我的js尝试:

$('.spot info')。单击(函数(e){
e、 预防默认值();
var test=$(this.parent().parent().data('data-test');
控制台日志(测试);
});
此测试在控制台中记录
未定义的
。我认为这可以检查
.spot info
的父对象的父对象


还有,有没有办法将许多
父(0)
方法链接在一起,而不是使用jQuery。

尝试attr。此外,请尝试“最近”而不是两次引用父对象:

$('.spot-info').click(function ( e ) {
    e.preventDefault();
    var test = $(this).closest('.spot').attr('data-test');
    console.log(test);
});

不确定-但我认为是这样的:

$('.spot-info').click(function ( e ) {
    e.preventDefault();
    var test = $(this).parent().parent().data('test');
    console.log(test);
});

如果可以使用,则在使用
.data()
获取数据时,您不需要使用
数据-
前缀,因此,最好不要:

$(this).parent().parent().data('test');
使用:

注意:主要问题来自
.data('data-test')
使用函数时,不应在开头添加字符串
数据-

希望他的帮助


工作片段
$('.spot info')。单击(函数(e){
e、 预防默认值();
var test=$(this).最近('.spot')。数据('test');
控制台日志(测试);
});

试验
试验

这很有效!谢谢顺便说一下,有没有比链接大量的父(0种方法)更好的方法呢?我担心如果HTML改变会打破这个问题,也许这就是使用jQuery的缺点。谢谢!别忘了标记:-你可能要考虑。:或编写自己的递归代码进行查找。我会接受它,但首先我想看看是否可以不用
parent().parent()
解决它,因为我不太喜欢它。我将接受
最接近的()
答案,因为我真的喜欢它。但是谢谢你的帮助,我也是这么想的,但是使用“最近点”是行不通的。知道为什么吗?这个解决方案工作正常。请接受它为answer@HassanALi我不知道为什么,但从我的末日起,它仍然在我的安慰PO中显示未定义spot“应该是”。spot。这应该行得通@马图斯特维德啊,对不起。我也应该发现的
$(this).closest('.spot').data('test');
$(this).parents('.spot').data('test');