根据选中的复选框显示div

我有一个网页有四个复选框,如下所示:

Buy Samsung 2230

Buy Nokia N 95

p>Buy Motorola M 100

p>Buy LG 2000

如果我检查两个或更多Checkbox然后在每个最后检查复选框之后我需要一个div,它最初应该处于隐藏状态,以显示为比较链接。

以下是我的代码:

但是,如果仅选中了两个或更多复选框,那么它应显示在最后一个选中的复选框下,即比较链接。

如果您查看我的代码,您也可以清楚地了解:

 $(document).ready(function() { $('input[type=checkbox]').change(function() { if ($('input:checked').size() > 1) { $('#checkbox1_compare').show(); } else { $('#checkbox1_compare').hide(); } }) }); 

这可能是你想要的:

 $(function() { $('input:checkbox').change(function() { var $ck = $('input:checkbox:checked'); $('input:checkbox').each(function() { $('#' + this.id + '_compare').hide(); }); if ($ck.length > 1) { $ck.each(function() { $('#' + this.id + '_compare').show(); }); } }); }); 

这总是从隐藏所有“compare”

元素开始,然后在选中2个或更多时显示与选中复选框相对应的元素。

你应该尝试一个更通用的模型,例如让复选框包含某个类,然后使用jQuery.each()循环遍历它们,计算值,并在循环中相应地渲染它们的子div: jQuery(this).children('.hidden-div').show()

更多信息: jQuery.each() ,. children()