获取html表每一行的输入字段的值

时间:2018-11-14 09:56:31

标签: javascript html

我有一个html表。每行都有带有隐藏边框的输入字段。当我按下按钮时,它应该给我每个表行的输入字段的所有值 如果可能的话,不使用id和class。

HTML:

<div class="row" style="z-index:0;">
<div class="col-md-12">
    <table id="detailTable" class="table table-bordered table-sm">
        <thead class="thead-light" style="text-align:center">
            <tr>
                <th style="width:130px;">Date</th>
                <th style="width:300px;">Particulars</th>
                <th style="width:10px;">C.B.F</th>
                <th style="width:180px;">Dr. Amount</th>
                <th style="width:180px;">Cr. Amount</th>
                <th style="width:200px;">Balance</th>
                <th style="width:10px;">Opt</th>
            </tr>
        </thead>
        <tbody>
           <tr>
              <td> <input type='text' value='11-12-2018'/> </td>
              <td> <input type='text' value='Cash'/> </td>
              <td> <input type='text' value=''/> </td>
              <td> <input type='text' value='20000'/> </td>
              <td> <input type='text' value='15000'/> </td>
              <td> <input type='text' value='-5000'/> </td>
              <td> <input type='button' value='Delete'/> </td>
           </tr>
        </tbody>
    </table>
</div>
<button class='btn btn-success'>Show</div>
</div>

我尝试过的JavaScript

var rowsInTable = $("#detailTable tr").length;
rowsInTable--;
row.parentNode.removeChild(row);

for(i=1;i<=rowsInTable;i++)
{
  console.log(document.getElementById("detailTable").rows[i].innerHTML);
}

3 个答案:

答案 0 :(得分:0)

您在这里!

$('button').on('click', function() {
    $('#detailTable > tbody').find('tr').each(function() {
        console.log($(this).find('input'));
    });
});

答案 1 :(得分:0)

我在这里使用$ .map获取值

还使用jQuery删除行

$(function() {
  $(".btn-success").on("click", function() {
    var values = $("#detailTable tbody input[type=text]").map(function() {
      return this.value;
    }).get();
    alert(values);
  });

  $("[type=button][value=Delete]").on("click", function() {  
    $(this).closest("tr").remove()
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row" style="z-index:0;">
  <div class="col-md-12">
    <table id="detailTable" class="table table-bordered table-sm">
      <thead class="thead-light" style="text-align:center">
        <tr>
          <th style="width:130px;">Date</th>
          <th style="width:300px;">Particulars</th>
          <th style="width:10px;">C.B.F</th>
          <th style="width:180px;">Dr. Amount</th>
          <th style="width:180px;">Cr. Amount</th>
          <th style="width:200px;">Balance</th>
          <th style="width:10px;">Opt</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td> <input type='text' value='11-12-2018' /> </td>
          <td> <input type='text' value='Cash' /> </td>
          <td> <input type='text' value='' /> </td>
          <td> <input type='text' value='20000' /> </td>
          <td> <input type='text' value='15000' /> </td>
          <td> <input type='text' value='-5000' /> </td>
          <td> <input type='button' value='Delete' /> </td>
      </tbody>
    </table>
  </div>
  <button type="button" class='btn btn-success'>Show</button>
</div>

答案 2 :(得分:0)

由于未标记JQuery,这就是我仅使用Javascript的方式:

var tableRows = document.getElementById("detailTable").rows

for (i = 1; i < tableRows.length; i++) {
  var myrow = tableRows[i];
  for (j = 0; j < myrow.cells.length; j++) {
    var mytd = myrow.cells[j];
    console.log(mytd.children[0].value);
  }
}

Here is the JSFiddle demo

您可以进一步对其进行微调,以获取格式化的输出。 附言:检查控制台的输出。