2016-02-04 55 views
2

我无法激活子类。jquery未能在下一个div上工作,无法添加类

https://jsfiddle.net/d36k2L3c/2/

我建立了各种各样的复选框,系统不仅会喜欢“复选框”激活,而且还改变了孩子div的颜色为好。代码根据需要更改复选框,但对子div没有任何作用。

任何人都可以帮助我,非常感谢帮助!谢谢,

<div class="question"> 
    <div class="question_check"> 
<div id="qid" class="question_check_box"></div> 
    </div> 
    <div class="question_content">This is the question</div> 
</div> 

$(".question_check_box").on().click(function() { 
$(this).toggleClass("question_check_box question_checked_box").next(".question_content").addClass("grey"); 

}); 
$(".question_checked_box").on().click(function() { 
$(this).toggleClass("question_checked_box question_check_box").next(".question_content").removeClass("grey"); 
}); 
+0

份额在控制台 – Derek

+0

'next'没有选择子节点得到的错误,它选择的兄弟姐妹。尝试'找到'。 – migg

+0

使用.closest()而不是.next()来获取父类选择器 – DinoMyte

回答

1

单独为什么.next()是不会工作的原因是因为question_check_box不是question_content兄弟。因此,您首先需要导航到question_check_box的父级(即question_check),然后使用.next()函数。

$(".question_check_box").on().click(function() { 
    $(this).toggleClass("question_check_box question_checked_box").closest(".question_check").next(".question_content").addClass("grey"); 
}); 

$(".question_checked_box").on().click(function() { 
    $(this).toggleClass("question_checked_box question_check_box").closest(".question_check").next(".question_content").removeClass("grey"); 
}); 
+0

是的,工作,不知道为什么你需要这两个,但无论更改addClass和removeClass切换类并按预期工作。谢谢! – spas2k

0

尝试此脚本:

$(".question_check_box, .question_checked_box").on("click",function() { 
    $(this).toggleClass("question_check_box question_checked_box") 
    .parent().parent().find(".question_content").toggleClass("grey"); 

}); 
相关问题