【发布时间】:2011-05-26 15:04:05
【问题描述】:
我有一个带有复选框的表单(包含在标签#contact 中)。对于此复选框的更改操作,我正在显示/隐藏一个 div (#options)。
为了确保如果选中复选框,则始终显示#options div(并避免选中复选框实际上隐藏子选项的情况),我使用以下代码:
$('#contact :checkbox').is(':checked') ? $("#options").show() : $("#options").hide();
这很好用。我遇到的问题是,我想要多个复选框,而不是一个带有 ID 的复选框。我想根据是否选中前一个复选框(在具有类.trigger 的标签内)来显示/隐藏我的.hidden 类的下一个实例。我试过这个:
$(document).ready(function() {
if( $('.trigger :checkbox').is(':checked') ) {
$(this).parent().nextAll('ul.hidden').show();
} else {
$(this).parent().nextAll('ul.hidden').hide();
}
});
但无济于事。复选框位于无序列表中,如下所示:
<ul>
<li><label class="trigger"><input type="checkbox" name="02" /> Trigger 1</label>
<ul class="hidden">
<li><label><input type="checkbox" name="02-sub1" /> Normal</label></li>
<li><label><input type="checkbox" name="02-sub2" /> Normal</label></li>
</ul>
</li>
<li><label><input type="checkbox" name="02" /> Normal</label></li>
<li><label><input type="checkbox" name="03" /> Normal</label></li>
<li><label class="trigger"><input type="checkbox" name="04" /> Trigger 2</label>
<ul class="hidden">
<li><label><input type="checkbox" name="04-sub1" /> Normal</label></li>
<li><label><input type="checkbox" name="04-sub2" /> Normal</label></li>
</ul>
</li>
</ul>
我看不出我在哪里出错了;大概我的选择器不正确,但我已经使用了很长时间的语法并且没有得到任何地方。在此先感谢(感谢您阅读本文)。
【问题讨论】:
-
我在这里问了一个与此相关的后续问题:stackoverflow.com/questions/4470260/…
标签: javascript jquery html jquery-selectors