Javascript 如何在jQuery中读取单击第一个锚点事件的数据属性值

Javascript 如何在jQuery中读取单击第一个锚点事件的数据属性值,javascript,jquery,html,Javascript,Jquery,Html,我试图使用jQuery访问数据属性,但无法读取值 这是我的HTML: $(函数(){ $(document.body).on('click',').remainingTimeDv.font sm.cursorDefault',函数(事件){ var messageId=$(this.parents().closest('.leveCommentDV').find('a:first').attr('data-ajax-coments-res'); 警报(messageId); }); });

我试图使用jQuery访问数据属性,但无法读取值

这是我的HTML:
$(函数(){
$(document.body).on('click',').remainingTimeDv.font sm.cursorDefault',函数(事件){
var messageId=$(this.parents().closest('.leveCommentDV').find('a:first').attr('data-ajax-coments-res');
警报(messageId);
});
});

必须遵守劳动合同的规定

    22分钟前 (对多名工作人员)

最近的
在这里不起作用。改为使用
find
。还可以使用
data
提取数据,而不是
attr

$(document.body).on('click','remainingTimeDv.font sm.cursorDefault',函数(事件){
var messageId=$(this.parents().find('.leveCommentDV').find('a:first').data('ajax-coments-res');
警报(messageId);
});

必须遵守劳动合同的规定

    22分钟前 (对多名工作人员)

我建议您使用
最近的()
兄弟姐妹()

(我不喜欢
.parents()
方法。)

您的代码
.closest('.leaveCommentDv')
不起作用,因为
.leaveCommentDv
不是祖先。我将其修改为正确的祖先
.remainingTimeDv
,并添加了
.sides('.leaveCommentDv')
,以便您的
find()
可以访问正确的元素

以下是一个工作片段:

$(document.body).on('click','remainingTimeDv.font sm.cursorDefault',函数(事件){
var messageId=$(this).closest('.remainingTimeDv')。同胞('.levecommentdv')。find('a:first')。attr('data-ajax-coments-res');
警报(messageId);
});
.remainingTimeDv.font sm.cursorDefault{
边框:1px纯蓝色;
}

必须遵守劳动合同的规定

    22分钟前 (对多名工作人员)
这将起作用:

$(函数(){
$(document.body).on('click',').remainingTimeDv.font sm.cursorDefault',函数(事件){
var messageId=$(this.parents().find('.leaveCommentDv:first a:first').data('ajax-coments-res');
警报(messageId);
});
});

必须遵守劳动合同的规定

    22分钟前 (对多名工作人员)

使用
.data('ajax-coments-res')
。但是,您的代码到底有什么问题?我得到的
未定义的
是无法获取值的。虽然这可能与您的问题无关,但我要指出
$(this).parents().closest('.leaveCommentDv')
是多余的,因为它选择
this
节点的所有祖先,然后使用“leaveCommentDv”类查找最近的祖先。这可能有效,但是调用
parents()
显然是不必要的(除非
This
节点也可能有
leaveCommentDv
类名)。