向动态创建的表行添加按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向动态创建的表行添加按钮相关的知识,希望对你有一定的参考价值。

因此,我试图将此按钮添加到动态创建的表行中。但老实说,我不知道该如何工作。该代码是一团糟,因为Iam尝试了很多事情才能实现这一目标。

我需要将此按钮(元素)附加到调用该函数的表行中,是否有任何聪明的方法可以做到这一点。如果我更改表格的结构,那就可以了。

function getPerson()
//addButton.value = "+";
//addButton.class = "btn btn-success";
$("#output1 tbody tr").remove();
fetch(url)
    .then(res => res.json())
    .then(data => 

        console.log(data);

        var temp = "";
        data.forEach((person) => 
            temp += "<tr>";
            temp += "<td>" +person.id+"</td>";
            console.log(person.id);
            temp += "<td>" +person.vorname+"</td>";
            temp += "<td>" +person.nachname+"</td>";
            temp += "<td>"
            person.projectList.forEach((project) => 
              temp += project.name+"<br>";
            );
            temp += "</td>"

            temp += "<td>"
            person.technoList.forEach((techno) => 
              temp += techno.name+"<br>";
            );
            temp += "</td>"




            temp += "<td id='addButton" + x + "' >" + addButton(person.id)+ "</td>"
             //this.parentElement.appendChild(this)
             x++;


            //document.getElementById('personDetail_Button').addEventListener('click', this.personDetail(person.id));
            temp += "</tr>"


        );

        document.getElementById("tableOutput").innerhtml= temp;

    );


function addButton(person_id)
  var person_id_onclick = person_id
  var element = document.createElement("input");
  element.type = 'button';
  element.value = 'test123';
  element.onclick = function()
    personDetail(person_id_onclick);
  
  $(element).addClass('btn btn-primary');
  //$(this).appendChild(element);
  document.body.appendChild(element);


<table class="table" id="output1">
        <thead class="thead-dark">
            <tr>
                <th scope="">ID</th>
                <th scope="col">Vorname</th>
                <th scope="col">Nachname</th>
                <th scope="col">Projekte</th>
                <th scope="col">Technologien</th>
                <th scope="col">Button</th>
            </tr>
        </thead>
        <tbody id="tableOutput">

        </tbody>

    </table>
答案

您可以尝试替换document.body.appendChild(element);带有返回元素;我还更新了功能,以删除随机jquery类。

function addButton(person_id)
  var person_id_onclick = person_id
  var element = document.createElement("input");
  element.type = 'button';
  element.value = 'test123';
  element.onclick = function()
    personDetail(person_id_onclick);
  
  element.setAttribute("class","btn btn-primary");

 return element;


以上是关于向动态创建的表行添加按钮的主要内容,如果未能解决你的问题,请参考以下文章

动态添加的表行不会触发 Click 事件

从动态添加的表行中获取数据

对动态表行使用 jquery 数据表

使用JSON动态添加表行

动态表名称生成导致“找不到表”

Java:向动态创建的组件添加事件