2016-06-01 8 views
-1

私はPHPのSQLを使用して生成されたチェックボックスのツリーを持っており、構造は次のようになります。生成されたツリーは、

<input class="level_" name="1" type="checkbox" /> Parent element 
<input class="level_z" name="153" type="checkbox" /> Child element 
<input class="level_z" name="481" type="checkbox" /> Child element 
<br/> 
<input class="level_" name="5" type="checkbox" /> Parent element 
<input class="level_zz" id="845" type="checkbox" /> Child element 
<input class="level_zz" id="5613" type="checkbox" /> Child element 

<input class="level_" name="2" type="checkbox" /> Parent element 
<input class="level_z" name="154" type="checkbox" /> Child element 
<input class="level_z" name="482" type="checkbox" /> Child element 
<br/> 
<input class="level_" name="8" type="checkbox" /> Parent element 
<input class="level_zz" id="659" type="checkbox" /> Child element 
<input class="level_zz" id="3643" type="checkbox" /> Child element 

私は親を選択したときに子要素を選択することがしたいが、彼らはすべての親と子のレベルが同じIDを持っているので、それらを個別のグループとして扱うことはできません。私は次の親まで親結局level_zzの子を選択するために管理しjqueryのを持っているが、それは十分ではありません。

$('.level_').change(function() { $(".level_").nextUntil(".level_zz").attr('checked', $(this).attr('checked')); });

私はユニークな親識別することなく、どのように行うのか分からないと私はどのように変更することはできません。チェックボックスも生成されます。

私は、コードは次のようになりたい:
"if certain parent (no unique class but unique name) is selected select all it's children too."

答えて

1

あなたが行うことができ、

$('.level_').change(function() { 
    $(this).nextUntil(".level_").prop('checked', this.checked); 
}); 

Fiddle

  • 代わりにハードコードされた親の名前を使用しての、ちょうどthisを使用します(現在のオブジェクト)。
  • nextUntil(next parent selector)を使用して、現在の要素の後の次の親要素の前にあるすべての子要素を選択します。
+0

美しくて簡単です!それは動作します、ありがとう! –

+0

@Bonnie_lassよろしくお願いします。答えの近くにあるチックボタンをクリックして回答を受け入れることができます。 –

関連する問題