0

我有一个棘手的 jquery 问题;我希望能够选择特定复选框的所有子项,当它具有跨度类标识符和内容时'-'

在下面的例子中;我希望在检查“Alarme”时同时检查“Alarmes domestiques”和“Contrôle 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

好的,试试看,还不是很好的代码。

$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

选中“警报”框以选中其他两个框后,您可以使用 jQuery 触发事件。将两个子项放在同一个类中(对于这个例子,我们会说“subChk”是类)

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

谢谢指正。

于 2013-02-12T21:45:03.713 回答