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
$("#container1 .block1 .pos2").on('change', function(){
    $(this).siblings('.pos3').prop('checked', this.checked);
});
于 2012-12-07T10:36:04.333 に答える
1

これを試して:

$(".pos2").click(function(){
   $(this).siblings(".pos3").attr('checked', 'checked');
});
于 2012-12-07T10:34:45.083 に答える
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 に答える
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 に答える