2

我有这个:

<div id="container1">
   <div class="block1">
      <input class="pos2" type="checkbox" /><label>Category1</label><br>
      <input class="pos3" type="checkbox" /><label>Subcategory1</label><br>
      <input class="pos3" type="checkbox" /><label>Subcategory1</label>
   </div>

   <div class="block1">
      <input class="pos2" type="checkbox" /><label>Category2</label><br>
      <input class="pos3" type="checkbox" /><label>Subcategory2</label>
      <input class="pos3" type="checkbox" /><label>Subcategory2</label>
   </div>
</container>

我正在尝试使用 jquery 来自动检查复选框。例如:如果我要检查“pos2”,它将自动检查 pos3。

我用这个:

$("#container1 .block1 .pos2").click(function(){
     $(".block1").children(".pos3").attr('checked', 'checked');
});

但我需要它只检查我点击的 div 中的“pos3”。

注意:复选框是使用 PHP 从数据库中的条目生成的。它们的数量可能会有所不同,因此我不能在元素上使用 id。

谁可以帮我这个事?

提前致谢!

4

5 回答 5

1

尝试这个:

$(".pos2").click(function(){
   $(this).siblings(".pos3").attr('checked', 'checked');
});
于 2012-12-07T10:34:45.083 回答
1
$("#container1 .block1 .pos2").on('change', function(){
    $(this).siblings('.pos3').prop('checked', this.checked);
});
于 2012-12-07T10:36:04.333 回答
0

此代码应该可以工作:

$("#container1 .block1 .pos2").click(function(){
    $(this).parent().find('.pos3').attr('checked', 'checked');
});

在处理函数中this指向被点击的对象。将获得该复选框的父级,并且 find 将仅在父级 div 内部.parent搜索(例如).pos3$(".block1 .pos3")

于 2012-12-07T10:34:55.580 回答
0

试试下面

 $("#container1 .block1 .pos2").click(function(){
    $(this).parents("div.block1:first")
     .children(".pos3").attr('checked', 'checked');
 });
于 2012-12-07T10:35:13.057 回答
0
$("#container1 .block1 .pos2").click(function(){
$(this).siblings(".pos3").attr('checked', 'checked');
});
于 2012-12-07T10:35:13.163 回答