复选框检查 td 内嵌套复选框的所有兄弟姐妹

checkbox checking all siblings of nested checkbox inside a td

请帮助我如何: 如果复选框父项被选中,则检查所有兄弟姐妹,并且如果复选框的某些 child/children 被选中,则父项也必须被选中。我该怎么做?

我的 laravel 代码中有这个:

<table class="table table-hover" id="tableOrders">                                    
    <thead class="thead-inverse">                        
        <tr>
          <th width="4%"><input type="checkbox" id="selectAll" /></th>
          <th width="7%">USER ID</th>
          <th width="12%">AMOUNT</th>
          <th width="15%">SHIP DATE</th>
          <th width="15%">RECEIVER</th>
          <th width="20%">ADDRESS</th>
          <th width="14%">MOBILE #</th>
        </tr>
    </thead>                        
    <tbody>
         <?php $i=0 ?>                             
         @foreach($shippings as $data)                             
        <tr>

            <td><input type="checkbox" class="parent" name="shippings[][]" value="{{ $data->shipping_id }}" />&nbsp;</td>                                
            <td><a href="#" data-value="{{ $data->user_id }}" class="linkedit"> {{ $data->user_id }} </a></td>
            <td><a href="#" data-value="{{ $data->total_amount }}" class="linkedit"> {{ $data->total_amount }} </a></td>
            <td><a href="#" data-value="{{ $data->shipping_date }}" class="linkedit"> {{ $data->shipping_date }} </a></td>
            <td><a href="#" data-value="{{ $data->shipping_receiver }}" class="linkedit"> {{ $data->shipping_receiver }} </a></td>
            <td><a href="#" data-value="{{ $data->shipping_address }}" class="linkedit"> {{ $data->shipping_address }} </a></td>   
            <td><a href="#" data-value="{{ $data->mobile_number }}" class="linkedit"> {{ $data->mobile_number }} </a></td>                                
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td><p style="font-weight:bold;">Product Name</p></td>
            <td><p style="font-weight:bold;">Price</p></td>
            <td><p style="font-weight:bold;">Ordered Qty</p></td>
            <td><p style="color:red;font-weight: bold;">Available Qty</p></td>
        </tr>                              
          @foreach($data->products as $product)

                <tr>
                  <td></td>
                  <td><input type="checkbox" class="child" name="shippings[{{$i}}][products][]" value="{{ $product->product_id }}" />&nbsp;</td>                
                  <td>{{ $product->product_name }}</td>
                  <td>{{ $product->price }}</td>                              
                  <td>{{ $product->quantity }}</td>
                  <td><p style="color:red;"> {{ $product->available_qty }}</p></td>                                      
                </tr>                              
          @endforeach                        
          <?php $i++; ?>                            
        @endforeach
    </tbody>
</table>

我有我的 jsfiddle link:

http://jsfiddle.net/jKxNF/112/

我很困惑,因为我是在 laravel 循环中做的,但它的结构在 jsfiddle 中。

我会向触发复选框添加一个属性,例如

<input type="checkbox"  data-target=".prefix-{{ $data->shipping_id }}">

并在目标 <td>

上使用 class
<td class="prefix-{{ $data->shipping_id }}"><input type="checkbox">Sample3</td>

以下Javascript将select相关复选框

$(document).on('change', 'input[type="checkbox"]', function(e) {
    var checked = $(this).prop('checked')
    var target = $(this).data('target')

    if(checked){
        $(target).find('input').prop('checked', true)
    } else {
        $(target).find('input').prop('checked', false)
    }
});

数据属性值应为 select,或者如果您使用 ID,则为 #prefix-{{ $data->shipping_id }};如果您使用 class

,则应为 .prefix-{{ $data->shipping_id }}