当前位置: 首页 > 面试题库 >

使用JavaScript动态添加/删除表行

上官自明
2023-03-14
问题内容

我正在尝试添加/删除表行。

这是我的代码:

HTML表格

<div id="POItablediv">
    <input type="button" id="addPOIbutton" value="Add POIs"/><br/><br/>
    <table id="POITable" border="1">
        <tr>
            <td>POI</td>
            <td>Latitude</td>
            <td>Longitude</td>
            <td>Delete?</td>
            <td>Add Rows?</td>
        </tr>
        <tr>
            <td>1</td>
            <td><input size=25 type="text" id="latbox" readonly=true/></td>
            <td><input size=25 type="text" id="lngbox" readonly=true/></td>
            <td><input type="button" id="delPOIbutton" value="Delete" onclick="deleteRow(this)"/></td>
            <td><input type="button" id="addmorePOIbutton" value="Add More POIs" onclick="insRow()"/></td>
        </tr>
    </table>
</div>

JavaScript

function deleteRow(row)
{
    var i=row.parentNode.parentNode.rowIndex;
    document.getElementById('POITable').deleteRow(i);
}


function insRow()
{
    var x=document.getElementById('POITable').insertRow(1);
    var c1=x.insertCell(0);
    var c2=x.insertCell(1);
    c1.innerHTML="NEW CELL1";
    c2.innerHTML="NEW CELL2";
}

现在,如您所见,在我的表格中,我有文本字段和按钮。我想要的是:

  1. 仅重复行的结构。我现在无法执行此操作,因为innerHTM仅接收文本。如何插入文本框或标签?

  2. 文本字段的ID也应该不同,因为稍后我将检索这些值以将其放入数据库中。

  3. 我想放置一个函数以增加POI的数量

有人可以帮我吗?


问题答案:

您可以仅克隆具有输入的第一行,然后获取嵌套的输入并更新其ID以添加行号(并与第一单元格相同)。

function deleteRow(row)
{
    var i=row.parentNode.parentNode.rowIndex;
    document.getElementById('POITable').deleteRow(i);
}


function insRow()
{
    var x=document.getElementById('POITable');
       // deep clone the targeted row
    var new_row = x.rows[1].cloneNode(true);
       // get the total number of rows
    var len = x.rows.length;
       // set the innerHTML of the first row 
    new_row.cells[0].innerHTML = len;

       // grab the input from the first cell and update its ID and value
    var inp1 = new_row.cells[1].getElementsByTagName('input')[0];
    inp1.id += len;
    inp1.value = '';

       // grab the input from the first cell and update its ID and value
    var inp2 = new_row.cells[2].getElementsByTagName('input')[0];
    inp2.id += len;
    inp2.value = '';

       // append the new row to the table
    x.appendChild( new_row );
}

下面的演示

function deleteRow(row) {

  var i = row.parentNode.parentNode.rowIndex;

  document.getElementById('POITable').deleteRow(i);

}





function insRow() {

  console.log('hi');

  var x = document.getElementById('POITable');

  var new_row = x.rows[1].cloneNode(true);

  var len = x.rows.length;

  new_row.cells[0].innerHTML = len;



  var inp1 = new_row.cells[1].getElementsByTagName('input')[0];

  inp1.id += len;

  inp1.value = '';

  var inp2 = new_row.cells[2].getElementsByTagName('input')[0];

  inp2.id += len;

  inp2.value = '';

  x.appendChild(new_row);

}


<div id="POItablediv">

  <input type="button" id="addPOIbutton" value="Add POIs" /><br/><br/>

  <table id="POITable" border="1">

    <tr>

      <td>POI</td>

      <td>Latitude</td>

      <td>Longitude</td>

      <td>Delete?</td>

      <td>Add Rows?</td>

    </tr>

    <tr>

      <td>1</td>

      <td><input size=25 type="text" id="latbox" /></td>

      <td><input size=25 type="text" id="lngbox" readonly=true/></td>

      <td><input type="button" id="delPOIbutton" value="Delete" onclick="deleteRow(this)" /></td>

      <td><input type="button" id="addmorePOIbutton" value="Add More POIs" onclick="insRow()" /></td>

    </tr>

  </table>


 类似资料:
  • 本文向大家介绍基于JavaScript实现动态添加删除表格的行,包括了基于JavaScript实现动态添加删除表格的行的使用技巧和注意事项,需要的朋友参考一下 又一个动态控制表格的效果,用JavaScript动态生成表格行、表格列,以及还可动态删除这些行列,行等,运行代码后,点击对应的功能按钮,即可实现对应的表格操作功能。 1.jsp 2.js 以上所述是小编给大家分享的JavaScript实现动

  • 本文向大家介绍javascript动态添加删除tabs标签的方法,包括了javascript动态添加删除tabs标签的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript动态添加删除tabs标签的方法。分享给大家供大家参考。具体实现方法如下: 用到的图片title2_on_green.jpg <img alt="" src="http://p.blog.csdn.net

  • 问题内容: https://jsfiddle.net/techboy0007/j1eas924/ https://i.stack.imgur.com/KXFot.png 问题答案: 您可以通过反应状态来实现。在您的情况下,您正在使用嵌套对象,因此在更新它们时需要格外小心。 突变您的想法不是一个好主意,因为它很容易导致错误或意外行为。 仔细查看这些功能的工作方式。 在这里,您有一个现场演示。 PD:

  • 本文向大家介绍JQuery动态添加和删除表格行的方法,包括了JQuery动态添加和删除表格行的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JQuery动态添加和删除表格行的方法。分享给大家供大家参考。具体分析如下: 昨天做页面表格行动态添加和删除,看了无数的介绍,发现了一个好东东,JQuery。用它实现起来还真的是很方便,这个是我用到我们平台的一个方法。 后台使用的也是比较容易的,

  • 问题内容: 我使用指令创建联系表格。最初我创建用于显示客户表单的customerForm指令。在这种形式下,我有一个按钮,当我们单击添加按钮时,称为getData函数,该函数内部使用newDirective显示ul列表。为此,我使用$ compile api编译html代码。很好,当我们单击“删除”按钮时,它也显示列表值和“删除”按钮,它称为scope.remove()函数。但是它只能删除一个。之

  • 问题内容: 我希望能够将多个行添加到div并删除它们。我在页面顶部有一个“ +”按钮,用于添加内容。然后,每行右侧都有一个“-”按钮,用于删除该行。我只是无法弄清楚此示例中的javascript代码。 这是我的基本HTML结构: 这是我想在内容div中添加的内容: 问题答案: 你可以做这样的事情。