如何根据该列标题检查表格行中的单选按钮?

时间:2018-05-17 09:31:57

标签: javascript jquery html

我的情况如下:

我必须添加属性'已检查'在带有标题' MyHeader2'

的单选按钮上



<table>
  <tr>
    <th>
      MyHeader
    </th>
    <th>
      MyHeader2
    </th>
  </tr>
  <tr>
    <td>
      <input type='radio' name='testradio' />
    </td>
    <td>
      <input type='radio' name='testradio1' />
    </td>
  </tr>
</table>
&#13;
&#13;
&#13;

如何在jQuery中实现它?

3 个答案:

答案 0 :(得分:4)

试试这个:

$("table tr th:contains(MyHeader2)").each(function(){
  var i = $(this).index(); //Get the index of the th.
  $("table tr td:eq("+i+") input:radio").prop("checked",true); // Set the radio to checked. 
})

<强>演示

&#13;
&#13;
$("table tr th:contains(MyHeader2)").each(function() {
  var i = $(this).index();
  $("table tr td:eq(" + i + ") input:radio").prop("checked", true)
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <th>
      MyHeader
    </th>
    <th>
      MyHeader2
    </th>
  </tr>
  <tr>
    <td>
      <input type='radio' name='testradio' />
    </td>
    <td>
      <input type='radio' name='testradio1' />
    </td>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您最好考虑在需要这样的地方使用data-attributes

让您的生活轻松愉快。

只需将标题作为数据属性添加到复选框,如

data-heading="MyHeader"

然后您可以轻松选择

$("input[data-heading='MyHeader2']")

$("input[data-heading='MyHeader2']").prop("checked", true)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table>
  <tr>
    <th>
      MyHeader
    </th>
    <th>
      MyHeader2
    </th>
  </tr>
  <tr>
    <td>
      <input type='radio' data-heading="MyHeader" name='testradio' />
    </td>
    <td>
      <input type='radio' data-heading="MyHeader2" name='testradio1' />
    </td>
  </tr>
</table>

答案 2 :(得分:0)

您可以先根据标头MyHeader2的值获取标头索引。使用此索引,您可以选择td中的单选按钮并将其标记为已选中。

$(document).ready(function(){
  var headerValue = 'MyHeader2';
  $('table tr th').each(function(index){
    if($(this).text().trim() === headerValue){
      headerIndex = index;
    }
  });
  $('table tr').each(function(){
      $(this).find('td:eq('+headerIndex+')').find('input[type=radio]').prop("checked", true);
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<table>
  <tr>
    <th>
     MyHeader
    </th>
    <th>
      MyHeader2
    </th>
    </tr>
    <tr>
      <td>
       <input type='radio' name='testradio' />
      </td>
      <td>
        <input type='radio' name='testradio1' />
      </td>
  </tr>
   <tr>
      <td>
       <input type='radio' name='testradio3' />
      </td>
      <td>
        <input type='radio' name='testradio4' />
      </td>
  </tr>
</table>