0

トリッキーなjqueryの質問があります。スパン クラス ID とコンテンツ '--' がある場合に、特定のチェックボックスのすべての子を選択できるようにしたい

以下の例では、「Alarme」をチェックするときに、「Alarmes domestiques」と「Controle d'accès」の両方がチェックされるようにします。また、選択を解除すると逆のアクションになります。

とても簡単なはずですが、私は Jquery の専門家ではありません。

ありがとう !

レイアウト

私は次のコードを持っています:

<tbody>
 <tr class="odd">
     <td>
     <div class="form-item-2-0-checkboxes-1--1">
         <input type="checkbox" name="2[0][checkboxes][1][-1]" value="1">
     </div>
     </td>
     <td>
          <span class="indenter"></span>
          <a href="/taxonomy/term/1" class="depth-0">Alarmes</a>
     </td>
 </tr>
 <tr class="even">
     <td>
         <div class="form-item-2-0-checkboxes-4--1">
              <input type="checkbox" name="2[0][checkboxes][4][-1]" value="1">
         </div>
     </td>
     <td>
          <span class="indenter">--&nbsp;</span>
          <a href="/taxonomy/term/4" class="depth-1">Alarmes domestiques</a>
     </td> 
 </tr>
 <tr class="odd">
     <td>
          <div class="form-item-2-0-checkboxes-5--1">
              <input type="checkbox" name="2[0][checkboxes][5][-1]" value="1">
          </div>
     </td>
     <td>
          <span class="indenter"></span>
          <a href="/taxonomy/term/2" class="depth-0">Aménagement</a>
     </td> 
 </tr>
 <tr class="even">
      <td>
          <div class="form-item-2-0-checkboxes-3--1">
              <input type="checkbox" name="2[0][checkboxes][3][-1]" value="1">
          </div>
      </td>
      <td>
          <span class="indenter"></span>
          <a href="/taxonomy/term/3" class="depth-0">Sanitaires</a>
      </td> 
 </tr>
 </tbody>
4

2 に答える 2

1

OK、それを試してみてください。まだ本当に素晴らしいコードではありません。

$checkboxes = $("span.indenter:empty").parent().prev().children().children();
$checkboxes.click(function(){
    var $t = $(this);
    var checked = $t.is(':checked');
    var $tr = $t.parent().parent().parent();
    var child;

    do {    $tr = $tr.next();
            if(!$tr.length) return;
            child = ! $tr.children(":nth-child(2)").children("span").is(":empty");
            if( child )
                $tr.children(":nth-child(1)").children().children().prop('checked',checked);
    } while(child);
});
于 2013-02-12T22:26:46.937 に答える
0

[アラーム] ボックスをオンにして他の 2 つをオンにすると、jQuery を使用してイベントをトリガーできます。2 つのサブ項目を同じクラスに入れます (この例では、「subChk」がクラスであるとします)

    $("#Alarmes").click(function() {
        $(".subChk").prop('checked', $("#Alarmes").is(':checked')); 
    });

訂正ありがとう。

于 2013-02-12T21:45:03.713 に答える