Javascript .addClass()到$(this)附近但在其外部的元素

Javascript .addClass()到$(this)附近但在其外部的元素,javascript,jquery,parent,addclass,Javascript,Jquery,Parent,Addclass,我有这个: <div class="mycontainer active"> <a href="#" class="mylink">link</a> </div> <div class="mycontainer"> <a href="#" class="mylink">link</a> </div> 但这不起作用,实际上我对Javascript/jQuery不太了解,我做错了什么?

我有这个:

<div class="mycontainer active">
    <a href="#" class="mylink">link</a>
</div>

<div class="mycontainer">
    <a href="#" class="mylink">link</a>
</div>
但这不起作用,实际上我对Javascript/jQuery不太了解,我做错了什么? 感谢您的帮助。

请尝试:

$(this).parent().addClass('active');
或:

相反。因为
$(this).parent()
已经引用了您正在查找的元素,然后使用
find()
尝试查找其中包含类
mycontainer
的元素,但这些元素不起作用

$('.myContainer').toggleClass('active')
应该这样做。
它将删除存在的类,并添加不存在的类。 退房

因此,守则是—

$('.mycontainer .mylink').on('click', function(){
   $('.myContainer').toggleClass('active');
});
下面是一行:

$(this).parent().find(".mycontainer")
找到mycontainer div,然后在其中查找.mycontainer,而实际上您已经在那里了

请尝试以下方法:

$('.mycontainer .mylink').on('click', function(){
    $(".active").removeClass('active');
    $(this).parent().addClass('active');
});
您可以改为使用:

$('.mycontainer .mylink').on('click', function () {
    $(this).closest('.mycontainer').addClass('active').siblings('.mycontainer.active').removeClass('active');
});

您想在正在单击的链接上添加活动类

示例:


感谢您解释它是如何工作的,我没有选择您的答案,只是因为在我的案例中使用just.parent()不起作用,因为在我的实际项目中,div包含与其他div等更复杂的结构,但再次感谢您的解释,它帮助我更好地理解我在哪里犯了错误!谢谢
$('.mycontainer .mylink').on('click', function(){
    $(".active").removeClass('active');
    $(this).parent().addClass('active');
});
$('.mycontainer .mylink').on('click', function () {
    $(this).closest('.mycontainer').addClass('active').siblings('.mycontainer.active').removeClass('active');
});
$('.mycontainer .mylink').on('click', function(){
    $('.mycontainer').removeClass('active');
    $(this).parent().addClass('active');
});