根据以某些值

时间:2017-02-17 08:12:36

标签: javascript jquery

我正在使用clone方法动态创建行。在创建行时,我每次都以cloneObject111,cloneObject1110,cloneObject1111和cloneObject1112的形式为行分配了id字段。

其中id = cloneObject111表示父行,其余都是其子行。 因此,当我们第二次单击克隆按钮时,id字段将从cloneObject222开始,依此类推。

问题是,当我点击仅为父行(id = cloneObject111)分配的删除按钮时,我正在调用一个函数来删除父行及其子行。

以下是我的屏幕,以便更好地理解。

cloneImage

点击上面图片中的“ - ”符号,我调用函数removeChildRows(rowId)删除最后4行但是它没有用,请帮我写完这个完整的javascript函数。提前谢谢。

function removeChildRows(r){
    console.log("Delete the Child Rows based on their Index"+r);

    row=document.getElementById("tr[id^=cloneObject" + r +"]");
    console.log(row);

}

2 个答案:

答案 0 :(得分:0)

您正在创建一个以selector开头的属性值,由于方法名称不言自明,因此无法与document.getElementById()一起使用。

使用字符串连接创建有效的ID,然后使用

row = document.getElementById("cloneObject" + r);

或,使用querySelector() / querySelectorAll()

row=document.querySelector("tr[id^=cloneObject" + r +"]");

要删除,只需调用remove()方法

即可
row.remove()

答案 1 :(得分:0)

不知何故,我使用以下代码。希望它可以帮助别人。

function removeChildRows(r){
    console.log("Delete the Child Rows based on their Index"+r);

    $("tr[id^=cloneObject" + r +"]").each(function(){

        $(this).closest("tr").remove();

    });

}