如何在javascript中添加克隆部分之前克隆一行但用另一个替换元素

如何解决如何在javascript中添加克隆部分之前克隆一行但用另一个替换元素

我是 JavaScript 新手。这是我的 HTML 代码

<div id="add-dependent" class="this-part">
        <div class="form-row mb-2 dependents">
            <div class=" col-lg-2 col-md-3 col-sm-3 col-5 ">
                <label class="text-left" contenteditable="true">Applicant 1: </label>
            </div>
            <div class="col-lg-5 col-md-5 col-sm-5 col-7">
                  <input class="float-left form-control m-100" type="number"                      
                                  placeholder="age">
            </div>
        </div>
        <div class="form-row mb-5 dependent">
            <div class=" col-lg-2 col-md-3 col-5 ">
                <button id="btn" name="btn" type="button" class="close "                        onClick="$(this).parent().parent().remove();" >x</button>
            </div>
            <div class="col-lg-5 col-md-5 col-sm-5 col-7">
                  <input class="float-left form-control m-100" type="number"                       style="font-size:15px" id="validationDefault28"  required                      placeholder="age">
            </div>
        </div>
        <button id="dependent"  class="funnelbtn mx-auto border"                        
 onClick="addDependent()">Add dependent</button>
    </div>
            
    <button id="add-applicant" class="funnelbtn mx-auto border"  onClick="addApplicant()">Add 
     applicant</button>

现在我想为“添加依赖”按钮编写一个 onclick 脚本来克隆行 (id="dependents")。实际上我想在每次单击“添加依赖”按钮时添加一行。这里重要的是在克隆之后,应将申请人 1 替换为一个关闭的按钮,该按钮删除克隆的行(与第二行相同)。我写的脚本如下

function addDependent(){
             var old_elem = document.getElementById("dependents");
      var new_elem = document.createElement("button");
    
      var new_content = document.createTextNode("x");
      new_elem.append("new_content");
      old_elem.replaceWith("new_elem");
      new_elem.id="close"+nextLabeL++;
       new_elem.setAttribute("onClick","click();");
            var clone=elem.cloneNode(true);
            clone.id= "dependent" + nextLabel;
            var add= document.getElementById("dependent");
      
            elem.parentElement.insertBefore(clone,add);
      
        }

但是在 chrom 中,我收到一个错误,其中没有找到“replaceWith”。它不起作用。

此外,我想为“添加申请人”按钮编写一个脚本,该按钮克隆 with id="add-dependent" 。并且克隆应该是可关闭的。在这里,我面临的问题是当添加一行并单击“申请人”标签旁边创建的关闭按钮时,第一个被清除。例如,当我想删除带有“applicant3”标签的第二个时,删除带有“applicant1”标签标签。这是我的脚本:

function addApplicant(){
            var elem= document.querySelector("#add-dependent");
            var clone=elem.cloneNode(true);
            var add= document.getElementById("add-applicant");
            elem.parentElement.insertBefore(clone,add);
      var label = clone.querySelector("label");
  label.innerHTML = '<button  class="close remove" style="font-size:12px;" onClick="remove()">x</button>' + "Applicant " + (nextLabeL++) ;
 var id=document.getElementById('add-dependent');
 id.id = "add-dependent" + (nextId++);
        } 

最后我添加了我的全部代码

function addDependent(){
            var elem= document.querySelector(".dependent");
            var clone=elem.cloneNode(true);
            var add= document.getElementById("dependent");
            elem.parentElement.insertBefore(clone,add);
        }
    let nextLabel=2
    let nextId=1
function addApplicant(){
            var elem= document.querySelector("#add-dependent");
            var clone=elem.cloneNode(true);
            var add= document.getElementById("add-applicant");
            elem.parentElement.insertBefore(clone,add);
      var label = clone.querySelector("label");
  label.innerHTML = '<button  class="close remove" style="font-size:12px;" onClick="remove()">x</button>' + "Applicant " + (nextLabeL++) ;
 var id=document.getElementById('add-dependent');
 id.id = "add-dependent" + (nextId++);
        } 
    
  
        
        
    
        function addDependent(){
             var old_elem = document.getElementById("dependents");
      var new_elem = document.createElement("button");
    
      var new_content = document.createTextNode("x");
      new_elem.append("new_content");
      old_elem.replaceWith("new_elem");
      new_elem.id="close"+nextLabeL++;
       new_elem.setAttribute("onClick",add);
      
        }
         function click(){
      var x= document.getElementById("close2");
      x.parent().remove();
    }
<div id="add-dependent" class="this-part">
        <div class="form-row mb-2 dependents">
            <div class=" col-lg-2 col-md-3 col-sm-3 col-5 ">
                <label class="text-left" contenteditable="true">Applicant 1: </label>
            </div>
            <div class="col-lg-5 col-md-5 col-sm-5 col-7">
                  <input class="float-left form-control m-100" type="number"   style="font-size:15px" id="validationDefault20"  required placeholder="age">
            </div>
                        
        </div>
        <div class="form-row mb-5 dependent">
            <div class=" col-lg-2 col-md-3 col-5 ">
                <button id="btn" name="btn" type="button" class="close " style="font-size:12px;" onClick="$(this).parent().parent().remove();" >x</button>
            </div>
            <div class="col-lg-5 col-md-5 col-sm-5 col-7">
                  <input class="float-left form-control m-100" type="number"   style="font-size:15px" id="validationDefault28"  required placeholder="age">
            </div>
        </div>
        <button id="dependent"  class="funnelbtn mx-auto border" style="width:190px;background-color:#ffffff; color:black;Box-shadow: 0px 0px 15px 5px rgba(0,.2); padding: 7px 5px; border-radius:5px; " onClick="addDependent()">Add dependent</button>
    </div>
            
    <button id="add-applicant" class="funnelbtn mx-auto border" style="width:190px;background-color:#ffffff; color:black;Box-shadow: 0px 0px 15px 5px rgba(0,.2); padding: 7px 5px; border-radius:5px; " onClick="addApplicant()">Add applicant</button>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?