我有以下结构。
<dl>
<dt class="tab">..</dt>
<dd class="tab-container">..</dd>
<dt class="tab">
<div class="hi">hello</div>
</dt>
<dd class="tab-container">...</dd>
<dt class="tab">...</dt>
<dd class="tab-container">...</dd>
</dl>
我想在点击“hi”div时将新类添加到最后一个dd元素。我可以使用jquery实现。
答案 0 :(得分:3)
您可以使用closest()获取相关的dd
祖先,然后定位到最后dl
:
$('div.hi').on('click', function(){
$(this).closest('dl').children('dd:last-child').addClass('myNewClass');
});
答案 1 :(得分:1)
听起来你想要这样的东西:
$(".hi").click(function () {
$(this).closest("dl").find("dd:last-child").addClass("blue");
});
答案 2 :(得分:1)
你好:)你可以使用parent()或parent() - documentation for parents()。
所以,试试这个:
$('.hi').on('click', function() {
// In that case- parents('dl') - try to catch a dl parent
$(this).parents('dl').find('dd:last-of-type').addClass('new-class');
});
答案 3 :(得分:1)
尝试学习遍历。回答你的问题[在评论中提问]
$(this).parents('dl').prev().closest('ul').children('li').eq(-2).addClass('new classs');
答案 4 :(得分:0)
一种方法是使用jQuery.parents
遍历DOM树,直到找到dl
元素。
$('.hi').on('click', function() {
$(this).parents('dl').find('dd:last').addClass('my-new-class');
});
这是DOM树遍历的jQuery API documentation category - 有不止一种方法可以做到。