如何通过表id选择表中具有类名的所有复选框

时间:2017-06-08 17:12:33

标签: javascript jquery css3 css-selectors

我的页面上有几个表,以及一个id为workOneTable的表。我在表中有几行,类名为.rsvLine,类名为.vtoLine。我需要能够使用类名.rsvLine选择workOneTable中的所有复选框。 我尝试过几件事。

$( '#workOneTable :checkbox.rsvLine' ).prop( 'checked', this.checked );

$( '#workOneTable' ).find( 'input[type=checkbox]' ).prop( 'checked', true );

$( '#workOneTable tbody .rsvLine :checkbox' ).prop( 'checked' );

非常感谢任何帮助。

修改

这是html代码中最相关的部分。

<table id=workOneTable>
<thead>
    several rows here
</thead>
<tbody>
    <tr>
        <td class="rsvLine"><input type="checkbox" ></td>
        <td class="rsvLine"><input type="checkbox" ></td>
        <td class="rsvLine"><input type="checkbox" ></td>
        <td class="vtoLine"><input type="checkbox" ></td>
        <td class="vtoLine"><input type="checkbox" ></td>
        <td class="vtoLine"><input type="checkbox" ></td>
        <td class="rsvLine">other stuff</td>
        <td class="rsvLine">other stuff</td>
    </tr>
</tbody>

如果我不使用表格id,我可以选择正确的。它将在所有表中选择.rsvLine。这是我用过的代码。

$( '.rsvLine :checkbox' ).each( function ()
            {
                if ( !$( this ).prop( "checked" ) )
                {
                    this.click();
                }
            } );

3 个答案:

答案 0 :(得分:2)

你需要这个

$( "#workOneTable .rsvLine input[type=checkbox]" ).each(function() {
  $( this ).prop('checked', true);
});

这是一个例子

&#13;
&#13;
$( "#workOneTable .rsvLine input[type=checkbox]" ).each(function() {
  $( this ).prop('checked', true);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id=workOneTable>
<thead>
    several rows here
</thead>
<tbody>
    <tr>
        <td class="rsvLine"><input type="checkbox" ></td>
        <td class="rsvLine"><input type="checkbox" ></td>
        <td class="rsvLine"><input type="checkbox" ></td>
        <td class="vtoLine"><input type="checkbox" ></td>
        <td class="vtoLine"><input type="checkbox" ></td>
        <td class="vtoLine"><input type="checkbox" ></td>
        <td class="rsvLine">other stuff</td>
        <td class="rsvLine">other stuff</td>
    </tr>
</tbody>

</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

如果您尝试将.checked属性设置为与Boolean属性的当前.checked值相反,请!位于this.checked.prop() }值

$(function() {
  $('#workOneTable .rsvLine :checkbox')
  .each(function() {
    $(this).prop('checked', !this.checked)
  });
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="workOneTable">
  <thead>
    several rows here
  </thead>
  <tbody>
    <tr>
      <td class="rsvLine"><input type="checkbox"></td>
      <td class="rsvLine"><input type="checkbox"></td>
      <td class="rsvLine"><input type="checkbox"></td>
      <td class="vtoLine"><input type="checkbox"></td>
      <td class="vtoLine"><input type="checkbox"></td>
      <td class="vtoLine"><input type="checkbox"></td>
      <td class="rsvLine">other stuff</td>
      <td class="rsvLine">other stuff</td>
    </tr>
  </tbody>
</table>

答案 2 :(得分:0)

您不需要使用&#34;每个&#34;方法。这就足够了:

$("#workOneTable td.rsvLine :checkbox").prop("checked", true);