动态添加data属性后获取值返回undefined的原因排查
问题原因及解决
核心问题:元素选择器写错了
你写的$(".tab-btn").find(".active")是在找.tab-btn内部的子元素里带.active类的元素,但实际你要找的是本身同时拥有.tab-btn和.active类的元素,正确的选择器应该是$(".tab-btn.active")。
原错误代码:
pastActiveBtn = $(".tab-btn").find(".active");
修正后的代码:
pastActiveBtn = $(".tab-btn.active");
额外验证项
- 先确认初始化阶段的
$navigation确实包含了目标.tab-btn元素,不然data-tab-id根本没被加上。 - 可以在浏览器控制台里查看目标元素的HTML,确认
data-tab-id属性是否已经正确挂载到.tab-btn上。 - jQuery的
data()方法支持两种写法:data('tabId')或者data('tab-id'),只要元素上的属性存在,两种都能拿到值。
内容的提问来源于stack exchange,提问作者MailCarrier
相关产品推荐
相关产品推荐

