选中每个动态表的所有复选框

时间:2016-03-14 12:40:16

标签: javascript jquery

我有多张桌子。表和行是从数据库生成的。顶部的每个表格都有一个复选框,如果我只点击该特定表格,则需要选中复选框。同样明智的我有更多的桌子和支票都应该独立工作每个表。这里我把html放在2个表中。

我的表结构如下:

<table width="800" border="1" cellpadding="2" cellspacing="0" class="inlineTable" style="border-collapse: collapse" bordercolor="#000000">
<tr><td colspan="5" align="center" width="800"><strong>Haweye International&nbsp;(USD)</strong></td></tr>
<tr>
                <th>Sl No</th>
                <th width=130>Tender Description</th>
                <th>Main</th>
                <th><input type="checkbox" id="selecctall"/></th>
                <th title="Selected to Quotation">S2Q</th>
                </tr>
        <tr align='center'><td>1</td><td width='140'>Silicon Free Tape </td><td></td><td><div class='list-item'><input class='checkbox1' type='checkbox' name='member[1]' value='53'></div></td><td title='Selected to Quotation' class="dark"><input type="checkbox" disabled="disabled" name="comparitive[]" value="53"  checked='checked' /></td>
</tr><tr align='center'><td>2</td><td width='140'>UV Sensitive Tape</td><td></td><td><div class='list-item'><input class='checkbox1' type='checkbox' name='member[2]' value='54'></div></td><td title='Selected to Quotation' class="dark"><input type="checkbox" disabled="disabled" name="comparitive[]" value="54"  checked='checked' /></td>
</tr></table>

<table width="800" border="1" cellpadding="2" cellspacing="0" class="inlineTable" style="border-collapse: collapse" bordercolor="#000000">
<tr><td colspan="6" align="center" width="800"><strong>Trend Zone limited&nbsp;(USD)</strong></td></tr>
<tr>
                <th>Sl No</th>
                <th width=130>Tender Description</th>
                <th>Tech %</th>
                <th>Main</th>
                <th><input type="checkbox" id="selecctall"/></th>
                <th title="Selected to Quotation">S2Q</th>
                </tr>
        <tr align='center'><td>1</td><td width='140'>Silicon Free Tape </td><td></td><td></td><td><div class='list-item'><input class='checkbox1' type='checkbox' name='member[3]' value='63'></div></td><td title='Selected to Quotation' class="dark"><input type="checkbox" disabled="disabled" name="comparitive[]" value="63" /></td>
</tr><tr align='center'><td>2</td><td width='140'>UV Sensitive Tape</td><td></td><td></td><td><div class='list-item'><input class='checkbox1' type='checkbox' name='member[4]' value='64'></div></td><td title='Selected to Quotation' class="dark"><input type="checkbox" disabled="disabled" name="comparitive[]" value="64" /></td>
</tr></table>

jquery如下:

$('.selectAll').click(function(e){
  var tr= $(e.target).closest('tr');
  $('td input:checkbox',tr).prop('checked',this.checked);
});

2 个答案:

答案 0 :(得分:1)

为每个主要复选框提供该复选框类名class="selectAll",JS将如下所示:

// just in case
// use event delegation here to ensure appended elements
// were bound to this handler
// you can replace `document` with the placeholder
// that dynamic elements inserted with
$(document).on('click','.selectAll', function(e){
  var table= $( this ).closest('table');
  table.find(':checkbox').not( this ).prop('checked',this.checked);
});

DEMO

答案 1 :(得分:0)

  1. id属性应该是唯一的。使用类
  2. 使用.not()排除当前元素。
  3. 使用:checkbox选择器仅选择type= 'checkbox'元素
  4. &#13;
    &#13;
    $('.selectAll').change(function() {
      $(this).closest('table').find('.list-item :checkbox').not(this).prop('checked', this.checked);
    });
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <table width="800" border="1" cellpadding="2" cellspacing="0" class="inlineTable" style="border-collapse: collapse" bordercolor="#000000">
      <tr>
        <td colspan="5" align="center" width="800"><strong>Haweye International&nbsp;(USD)</strong>
        </td>
      </tr>
      <tr>
        <th>Sl No</th>
        <th width=130>Tender Description</th>
        <th>Main</th>
        <th>
          <input type="checkbox" class="selectAll" />
        </th>
        <th title="Selected to Quotation">S2Q</th>
      </tr>
      <tr align='center'>
        <td>1</td>
        <td width='140'>Silicon Free Tape</td>
        <td></td>
        <td>
          <div class='list-item'>
            <input class='checkbox1' type='checkbox' name='member[1]' value='53'>
          </div>
        </td>
        <td title='Selected to Quotation' class="dark">
          <input type="checkbox" disabled="disabled" name="comparitive[]" value="53" checked='checked' />
        </td>
      </tr>
      <tr align='center'>
        <td>2</td>
        <td width='140'>UV Sensitive Tape</td>
        <td></td>
        <td>
          <div class='list-item'>
            <input class='checkbox1' type='checkbox' name='member[2]' value='54'>
          </div>
        </td>
        <td title='Selected to Quotation' class="dark">
          <input type="checkbox" disabled="disabled" name="comparitive[]" value="54" checked='checked' />
        </td>
      </tr>
    </table>
    
    <table width="800" border="1" cellpadding="2" cellspacing="0" class="inlineTable" style="border-collapse: collapse" bordercolor="#000000">
      <tr>
        <td colspan="6" align="center" width="800"><strong>Trend Zone limited&nbsp;(USD)</strong>
        </td>
      </tr>
      <tr>
        <th>Sl No</th>
        <th width=130>Tender Description</th>
        <th>Tech %</th>
        <th>Main</th>
        <th>
          <input type="checkbox" class="selectAll" />
        </th>
        <th title="Selected to Quotation">S2Q</th>
      </tr>
      <tr align='center'>
        <td>1</td>
        <td width='140'>Silicon Free Tape</td>
        <td></td>
        <td></td>
        <td>
          <div class='list-item'>
            <input class='checkbox1' type='checkbox' name='member[3]' value='63'>
          </div>
        </td>
        <td title='Selected to Quotation' class="dark">
          <input type="checkbox" disabled="disabled" name="comparitive[]" value="63" />
        </td>
      </tr>
      <tr align='center'>
        <td>2</td>
        <td width='140'>UV Sensitive Tape</td>
        <td></td>
        <td></td>
        <td>
          <div class='list-item'>
            <input class='checkbox1' type='checkbox' name='member[4]' value='64'>
          </div>
        </td>
        <td title='Selected to Quotation' class="dark">
          <input type="checkbox" disabled="disabled" name="comparitive[]" value="64" />
        </td>
      </tr>
    </table>
    &#13;
    &#13;
    &#13;