Javascript:不插入右索引行表

标签 javascript jquery

我尝试在单击按钮的行下添加一定数量的行(取决于在文本框中输入的数字)。它在第一行上工作正常,但当我在第二行按钮上执行此操作时,它不起作用(它继续插入到第一行下)。

这是 fiddle : https://jsfiddle.net/L4zffok1/

$('.add-rows').click(function(){

    var $bx_id;
    var $num_rows;
    var table = document.getElementById("myTable");
    $bx_id = this.id;
    $num_rows = $('#num_boxcodes_'+$bx_id).val();

    for (i = 0; i < $num_rows; i++) {
        var row = table.insertRow($bx_id);
        var cell1 = row.insertCell(0);
        var cell2 = row.insertCell(1);
        var cell3 = row.insertCell(2);
        var cell4 = row.insertCell(3);
        var cell5 = row.insertCell(4);
        var cell6 = row.insertCell(5);
        var cell7 = row.insertCell(6);
        var cell8 = row.insertCell(7);
        cell1.innerHTML = '------';
        cell2.innerHTML = '------';
        cell3.innerHTML = '------';
        cell4.innerHTML = '------';
        cell5.innerHTML = '------';
        cell6.innerHTML = '------';
        cell7.innerHTML = '------';
        cell8.innerHTML = '------';
    }
});

最佳答案

.insertRow 希望您在放置新行时传递索引,但您只传递 23 (这是 ID 的,ID 名称不应以数字开头)。尝试计算新的位置。

$(document).ready(function() {
  $('.add-rows').click(function() {

    var $bx_id;
    var $num_rows;
    var table = document.getElementById("myTable");
    $bx_id = this.id;
    $num_rows = $('#num_rows_' + $bx_id).val();
    var rowIndex = $(this).closest('tr').index() + 2;
    var k = "00" + Math.floor(Math.random() * 100);
    k = k.substr(k.length - 2);

    for (i = 0; i < $num_rows; i++) {
      var row = table.insertRow(rowIndex);
      var cell1 = row.insertCell(0);
      var cell2 = row.insertCell(1);
      var cell3 = row.insertCell(2);
      var cell4 = row.insertCell(3);
      var cell5 = row.insertCell(4);
      var cell6 = row.insertCell(5);
      var cell7 = row.insertCell(6);
      var cell8 = row.insertCell(7);
      cell1.innerHTML = '----' + k;
      cell2.innerHTML = '----' + k;
      cell3.innerHTML = '----' + k;
      cell4.innerHTML = '----' + k;
      cell5.innerHTML = '----' + k;
      cell6.innerHTML = '----' + k;
      cell7.innerHTML = '----' + k;
      cell8.innerHTML = '----' + k;
    }
  });
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table table-striped table-hover" id="myTable">
  <thead>
    <tr class="success">
      <th>Column 1</th>
      <th>Column 2</th>
      <th>Column 3</th>
      <th>Column 4</th>
      <th>Column 5</th>
      <th>Column 6</th>
      <th>Column 7</th>
      <th>Column 8</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Test</td>
      <td>Test</td>
      <td>Test</td>
      <td>Test</td>
      <td>
        <input type="text" size="10" id="num_rows_2" />
        <button type="button" id="2" class="btn btn-success btn-inline add-rows">OK</button>
      </td>
      <td>Test</td>
      <td>Test</td>
      <td>Test</td>
    </tr>
    <tr>
      <td>Test2</td>
      <td>Test2</td>
      <td>Test2</td>
      <td>Test2</td>
      <td>
        <input type="text" size="10" id="num_rows_3" />
        <button type="button" id="3" class="btn btn-success btn-inline add-rows">OK</button>
      </td>
      <td>Test2</td>
      <td>Test2</td>
      <td>Test2</td>
    </tr>
  </tbody>
</table>

关于Javascript:不插入右索引行表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39739082/

相关文章:

javascript - Javascript函数什么时候执行? php 变量没有改变传入的参数

javascript - ddSlick 在选择中具有动态创建的选项字段

javascript - Mouseup 事件在 Swiper 中不起作用

javascript - 使用 json 数据填充 Materialise 自动完成功能

javascript - 如何创建水平选项卡式菜单?

php - 在 PHP session 中保存数组

javascript - PDF.js 在 sails.js 中使用显示 API

javascript - 缩短 JQuery 片段

jquery - 获取输入文本字段的值并将其子字符串化

javascript - 如何使用 Angular 1.5 中的组件为每个页面设置标题