单击后,使用jQuery显示带有复选框的div

单击后,使用jQuery显示带有复选框的div,jquery,Jquery,我有这个HTML: $'.form group outer>label'.find'>input:checkbox,>input:radio'.on'click',函数{ el=$this.closest'.form group'.find'.sub-question'; ifel.length>0{el.css'display','block';} 否则{ $'.子问题'.css'显示','无'; $”。子问题:输入[type=radio],。子问题:输入[type=checkbox]。。每

我有这个HTML:

$'.form group outer>label'.find'>input:checkbox,>input:radio'.on'click',函数{ el=$this.closest'.form group'.find'.sub-question'; ifel.length>0{el.css'display','block';} 否则{ $'.子问题'.css'显示','无'; $”。子问题:输入[type=radio],。子问题:输入[type=checkbox]。。每个函数索引{ $this.prop'checked',false; }; } }; 问题1: 我想要香蕉 我想要梨 我想要苹果 你想要什么颜色的? 红色 绿色 黄的
问题是您需要知道子级别是否正确

你的情况应该是这样的

if(el.length > 0 && el.is(':hidden')) { ...
我还建议您更改jQuery和方法的.css“display”


不要像那样使用.css进行显示/隐藏。

我认为您使用.css过于复杂了。我在回答中使用了jQuery的显示和隐藏函数。如果您有任何问题,请随时跟进

编辑:原始问题源于评论。编辑反映了所需的更改

$'.form group outer>label'.find'>input:checkbox,>input:radio'.on'click',函数{ var qID=$this.attr'name'。替换[]; var sID=qID.concat_2;; var el=$this.closest'.form group'.find'.sub-question'; 如果$this.is':选中'{ $子问题“+qID.hide; $'input[name^='+sID+']'。prop'checked',false; el.show; }否则{ 兽皮; } }; 问题1: 我想要香蕉 我想要梨 我想要苹果 你想要什么颜色的? 红色 绿色 黄的 问题2: 我想要香蕉 我想要梨 我想要苹果 你想要什么颜色的? 红色 绿色 黄的
谢谢你的帮助。我认为它不起作用:@popol什么不起作用?在第三个复选框上,显示/隐藏正在工作的子级别。我遗漏了什么?注意…这并没有像预期的那样工作,因为这并没有像OP一样清除关闭时的复选框。啊,对不起。如果我取消选中第三个复选框并再次选中该复选框,您的代码将丢失部分。子级别将从上一个条目填充。我还通过包含$'input[name=q1_1[]],编辑以包含@DARMANCE的优秀点。prop'checked',false;当取消选择父项时,它将清除输入框。在您的jsFiddle jsFiddle.net/un58pwe1中,我认为它根本不起作用还有一些事情我需要调查。天晚了,所以我明天来照看它