javascript - 向表格的每一行添加按钮以删除所述行

标签 javascript html css

只是寻找一个简单的解决方案来解决这个问题,请考虑以下代码:

<!DOCTYPE html>
    <html>
    <head>
        <title>Javascript - Add HTML Table Row </title>
        <meta charset="windows-1252">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <form>
        <script>
            function addRow()
            {
                // get input values
                    var name = document.getElementById('name').value;
                    var currentAge = 
                document.getElementById('currentAge').value;
                    var Birthday = document.getElementById('Birthday').value;
                    var carType = document.getElementById('carType').value;
                    var Delete = document.getElementById('Delete').value;                  



                  var table = document.getElementsByTagName('table')[0];


                  var newRow = table.insertRow(table.rows.length/2+1);


                  var cel1 = newRow.insertCell(0);  
                  var cel2 = newRow.insertCell(1);
                  var cel3 = newRow.insertCell(2);
                  var cel4 = newRow.insertCell(3);
                  var cel5 = newRow.insertCell(4);



                  cel1.innerHTML = name;               
                  cel2.innerHTML = currentAge;                 
                  cel3.innerHTML = Birthday;
                  cel4.innerHTML = carType;
                  cel5.innerHTML = Delete;


           function myFunction(){
           var x = document.getElementById("table").rows.length;
           document.getElementById("demo").innerHTML = "Found " + x + " tr 
           elements in the table.";
            }


            </script>
            </form>
        </head>
    <style>


    table, th {

    border: 1px solid black;    
    }

    tbody td{
    padding: 30px;
    }


    tbody tr:nth-child(odd){
    background-color: #F4BC01;
    color: #ABC412;
    }

    $("")


    </style>

    <body>
    <h2>Basic HTML table</h2> <button onclick="myFunction()">Press me for 
    elements amount</button>
    <p id ="demo"></p>


        Name: <input type="text" name="name" id="name" /><br/><br/>
        Age: <input type="text" name="currentAge" id="currentAge" /><br/><br/>
        Date of Birth <input type="date" name="Birthday" id="Birthday" /><br/>

        <button onclick="addRow();">Display</button><br/><br/>

        <p>Eye Colour:</p>

        <select id="carType">
        <option value="ferrari"  id="ferrari">Ferrari</option>
        <option value="lamborghini"  id="lamborghini">Lamborghini</option>
        <option value="porsche"  id="porsche">Porsche</option>
        <option value="bugatti"  id="bugatti">Bugatti</option>
        <option value="pagani" id="pagani">Pagani</option>

        </select>


        <table border="1" id="table">
            <tr>
                <th>Name</th>
                <th>Age</th>
                <th>Birthday</th>
                <th>CarType</th>
                <th>Delete Entry
                <button id="Delete" onclick="remove_update(event)">delete</button> //this button right here but in each row and not here. should remove said row

                </th>
            </tr>
        </table>
    </body>
</html>

我想做的是在 cel 5(删除条目)中为输入到表中的每一行添加一个删除按钮,这将删除该行但不知道如何去做。理想情况下,如果可能的话,我希望在不使用 JQuery 的情况下执行此操作,因为到目前为止我还没有触及它。

最佳答案

您可以使用 rowIndex 属性来删除行。

function addRow() {
  // get input values
  var name = document.getElementById('name').value;
  var currentAge = document.getElementById('currentAge').value;
  var Birthday = document.getElementById('Birthday').value;
  var carType = document.getElementById('carType').value;

  var table = document.getElementsByTagName('table')[0];
  const index = table.rows.length;
  var newRow = table.insertRow(index);
  newRow.setAttribute('data-index', index);
  var cel1 = newRow.insertCell(0);
  var cel2 = newRow.insertCell(1);
  var cel3 = newRow.insertCell(2);
  var cel4 = newRow.insertCell(3);
  var cel5 = newRow.insertCell(4);

  cel1.textContent = name;
  cel2.textContent = currentAge;
  cel3.textContent = Birthday;
  cel4.textContent = carType;
  cel5.innerHTML = '<button onclick="removeRow(this)" type="button" class="delete-button">Delete</button>';
}


function myFunction() {
  var x = document.getElementById("table").rows.length;
  document.getElementById("demo").innerHTML = "Found " + x + "tr elements in the table.";
}


function removeRow(evt) {
  const deleteIndex = evt.parentElement.parentElement.rowIndex;
  document.getElementById("table").deleteRow(deleteIndex);
}
table,
th {
  border: 1px solid black;
}

tbody td {
  padding: 30px;
}

tbody tr:nth-child(odd) {
  background-color: #F4BC01;
  color: #ABC412;
}
<h2>Basic HTML table</h2> <button onclick="myFunction()">Press me for 
    elements amount</button>
    <p id ="demo"></p>


        Name: <input type="text" name="name" id="name" /><br/><br/>
        Age: <input type="text" name="currentAge" id="currentAge" /><br/><br/>
        Date of Birth <input type="date" name="Birthday" id="Birthday" /><br/>

        <button onclick="addRow();">Display</button><br/><br/>

        <p>Eye Colour:</p>

        <select id="carType">
        <option value="ferrari"  id="ferrari">Ferrari</option>
        <option value="lamborghini"  id="lamborghini">Lamborghini</option>
        <option value="porsche"  id="porsche">Porsche</option>
        <option value="bugatti"  id="bugatti">Bugatti</option>
        <option value="pagani" id="pagani">Pagani</option>

        </select>


        <table border="1" id="table">
            <tr>
                <th>Name</th>
                <th>Age</th>
                <th>Birthday</th>
                <th>CarType</th>
                <th>Delete</th>
            </tr>
        </table>
    </body>
</html>

关于javascript - 向表格的每一行添加按钮以删除所述行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54811912/

相关文章:

javascript - jQuery 脚本不修改元素的 src

css - 输入宽度百分比不正确

css - 使用 bootstrap 的响应式设计时,如何使用 CSS 使宽度灵活?

javascript - 请等待页面完全加载后才会加载内容

javascript - jquery自定义文件输入插件

javascript - 对这段 JavaScript 代码片段感到困惑

javascript - 覆盖 jQuery 中的内联点击事件

html - Flat-ui 选择下拉菜单不起作用

javascript - 需要显示所有选项是使用 jQuery 的基于字母的导航

html - 无法使用 overflow-x : hidden on image