javascript - 单击行按钮删除动态创建的表行

标签 javascript forms dynamic delete-row element

当用户单击属于该表行一部分的删除按钮时,我尝试删除动态创建的表行。但这似乎对我不起作用。我尝试了许多不同的方法,但它仍然要么从第一个创建的行中删除,要么根本不删除。这是我目前手头的东西,但不起作用。

JS函数:

var rowID=0;
var table = document.createElement('table');
table.id = "attrtable";
table.className = "attrtable";

function showAttributes()
{
    var tr = document.createElement('tr');
    tr.id=rowID;
    var attributeName = document.getElementById("attNam").value;
    var choice=document.getElementById("attrTypefromCombo");
    var attrTypeCombo = choice.options[choice.selectedIndex].text;

    showAttrDivision.appendChild(attrName);
    showAttrDivision.appendChild(attrType);
    showAttrDivision.appendChild(closeattr);

    var tdAttrName = document.createElement('td');
    var tdAttrType = document.createElement('td');
    var tdDelete   = document.createElement('td');

    var text1 = document.createTextNode(attributeName);
    var text2 = document.createTextNode(attrTypeCombo);
    var deletebtn =  document.createElement("button");
    deletebtn.type="button";
    //deletebtn.id = rowID;
    var text3= "<img src='../Images/Delete.png'>";
    deletebtn.innerHTML = text3;
    deletebtn.onclick = function() {
        deleteRow(rowID);
    };



    tdAttrName.appendChild(text1);
    tdAttrType.appendChild(text2);
    tdDelete.appendChild(deletebtn);
    tr.appendChild(tdAttrName);
    tr.appendChild(tdAttrType);
    tr.appendChild(tdDelete);
    rowID++;
    table.appendChild(tr);
    showAttrDivision.appendChild(table);
}

function deleteRow(row) 
{
    document.getElementById("attrtable").deleteRow(row);
}

最佳答案

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 );
}

Demo_click here

关于javascript - 单击行按钮删除动态创建的表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38067703/

相关文章:

javascript - TinyMCE:格式化我的tinymce编辑器会杀死django功能

javascript - 缩放网页内容上的特定元素(HTML、CSS、JavaScript)

javascript - 使用动态 ID 和输入值创建段落

java - 有没有办法在 JButton 中存储数据?

python - 使用 python 在 blender 中使用 addObject()

javascript - 如何使用 netsuite 上的用户事件 suitescript 更新不支持的事务类型(例如 Bill)的字段

javascript - 检测到多个事件,其中应该只有一个

javascript - 根据元素的颜色验证表单是一个好习惯吗?

javascript - 有没有办法纯粹通过 CSS 来做到这一点?

php - 带有下拉选择的表单,从 2 个连接的 mysql 表收集数据并将它们保存到 1 个表中