【问题标题】:Get tr id values in Datatables [closed]在数据表中获取 tr id 值[关闭]
【发布时间】:2015-12-05 07:16:15
【问题描述】:

我有以下 html 表格布局

<tbody>
  <tr id="13" role="row" class="odd">
    <td class="sorting_1">
      <input type="checkbox" class="checkall selected" id="checkall" name="checkall[]">
    </td>
    <td>4</td>
    <td>4.00</td>
    <td>4</td>
  </tr>
  <tr id="12" class="even" role="row">
    <td class="sorting_1">
      <input id="checkall" class="checkall selected" type="checkbox" name="checkall[]">
    </td>
    <td>1</td>
    <td>1.00</td>
    <td>1</td>
  </tr>
  <tr id="11" class="odd" role="row">
    <td class="sorting_1">
      <input id="checkall" class="checkall" type="checkbox" name="checkall[]">
    </td>
    <td>4</td>
    <td>5.00</td>
    <td>2</td>
  </tr>
</tbody>

现在我需要获取一个 tr id 值,只需要获取所选输入复选框的行 id 值。 例如:我选择了行 id="13" 和 id="12" 所以我需要 13 和 12,而不是 11。

【问题讨论】:

  • 我认为你可以给他们投票。
  • 声望低于 15 则无法投票。
  • Testmail Facebook,哦。我明白了。

标签: javascript jquery html datatables


【解决方案1】:

您可以使用.each 选择所有具有selectedcheckbox(或使用:checked -> input[type=checkbox]:checked)类,然后获取tr id

顺便说一句,您的身份证件无效。根据W3C

ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,并且可以是 后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、 下划线(“_”)、冒号(“:”)和句点(“.”)。

Jsfiddle

$(document).ready(function() {
  var ids = [];
  $('table input[type=checkbox].selected').each(
    function(i) {
      ids.push($(this).closest('tr').attr('id'));
    });
  $('.results').html(ids);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table>
  <tr id="13" role="row" class="odd">
    <td class="sorting_1">
      <input type="checkbox" class="checkall selected" id="checkall" name="checkall[]">
    </td>
    <td>4</td>
    <td>4.00</td>
    <td>4</td>
  </tr>
  <tr id="12" class="even" role="row">
    <td class="sorting_1">
      <input id="checkall" class="checkall selected" type="checkbox" name="checkall[]">
    </td>
    <td>1</td>
    <td>1.00</td>
    <td>1</td>
  </tr>

  <tr id="11" class="odd" role="row">
    <td class="sorting_1">
      <input id="checkall" class="checkall" type="checkbox" name="checkall[]">
    </td>
    <td>4</td>
    <td>5.00</td>
    <td>2</td>
  </tr>

</table>

<div class="results"></div>

【讨论】:

  • 非常感谢工作正常....
  • @TestmailFacebook 欢迎您,不要忘记更改您的IDs
【解决方案2】:

你可以像这样用 jquery 做到这一点。

    $('input[type=checkbox]:checked').map(function (checkbox) {
        return $(checkbox).closest('tr').attr("id");
    });

它将返回所选行的所有id。

【讨论】:

  • 我得到一个未定义的值。
【解决方案3】:

您可以在没有任何框架的情况下为每个复选框添加内联 onclick 处理程序,如下所示:

<input id="checkall" onclick="getRowId(this)" class="checkall selected" type="checkbox" name="checkall[]">

然后提供处理程序:

<script>
    function getRowId(input_elm) {
        if(input_elm.checked) {
            //console.log(input_elm.parentNode.parentNode.id);
            alert(input_elm.parentNode.parentNode.id);
        }
    }
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    相关资源
    最近更新 更多