如何通过此代码动态删除行div

时间:2014-01-15 16:57:30

标签: javascript

“我更新代码”。我试图通过调用按钮中的删除函数(请参阅create())以这种方式删除行:  我创建div的功能:

  <script type="text/javascript" defer="defer">

    function create()
    {
        var newDiv = document.createElement('div');
            newDiv.innerHTML = "<table id='e' border><tr><td><input type='text'><button onclick=del(this.value)</button></td></tr></table>";
//      newDiv.className = 'newClass';
                    document.body.appendChild(newDiv);

    }

    function del (e) {
if ('function' === typeof e.remove) {
    return e.remove();
}
return e.parentNode.removeChild(e);

}

3 个答案:

答案 0 :(得分:1)

在JavaScript中就像这样

function delete() {
    var element = document.getElementById('elementId');
    element.parentNode.removeChild(element);
}

或使用jQuery你可以使用

$('#elementId').remove();

答案 1 :(得分:1)

以下答案解决了原始问题,该问题与添加/删除元素有关。事实上,对于更大的问题,你可能会更好地使用开箱即用的解决方案。看看appendGrid并查看它是否符合您的需求。

要做的就是从函数中返回你的新div。然后,您可以使用div.remove()将其删除。

function create () {
    var newDiv = document.createElement('div');
    newDiv.innerHTML = "<table border><tr><td><input type='text'></td></tr><button </table>";
    return newDiv;
}
function del (e) {
    if ('function' === typeof e.remove) {
        return e.remove();
    }
    return e.parentNode.removeChild(e);
}
var div = create();
document.body.appendChild(div);
// Some other stuff you want to do...
del(div);

答案 2 :(得分:0)

您需要保存对newDiv的引用或在newDiv.id结束前设置create(),然后您可以:
    newDiv.parentNode.removeChild(newDiv);
要么:     document.getElementById(newDiv.id).parentNode.removeChild(document.getElementById(newDiv.id));

我认为保存引用是可取的,但我不知道这是否适合您的其余代码。我不确定James提供的建议是否有效,因为据我了解,JS不允许HTML元素自杀,只有杀婴。