简体   繁体   English

如何使用JavaScript删除表格中的特定行?

[英]How to delete a specific row in a table using javascript?

what i have implemented so far: 到目前为止,我已经实现了什么:

  1. Enter the values in the input fields and click " Add" button , The entered values gets added to the new row . 在输入字段中输入值,然后单击“添加”按钮,输入的值将添加到新行。
  2. And When i click delete button, all the rows are getting deleted . 当我单击删除按钮时,所有行都将被删除。

What I need to implement : 我需要实现的是:

  1. Checkbox should get added to every row . 复选框应添加到每一行。
  2. If i select the checkbox and click "delete" button, only that particular row should get deleted and it should work if i select multiple check boxes as well. 如果我选中该复选框并单击“删除”按钮,则仅该特定行应被删除,并且如果我也选中了多个复选框,则该行应该起作用。 3.Clear the Input fields after i click add button . 3.单击添加按钮后,清除输入字段。 Can anyone check this out and tell me how to do that . 任何人都可以检查一下并告诉我该怎么做。

 //Javascript code to Add new rows onclick of a button and to delete row . function addMoreRows() { var user = document.getElementById('user_id').value; var date = document.getElementById('date').value; var color = document.getElementById('color').value; var table = document.getElementById('tbl_id'); var row = table.insertRow(); var userName = row.insertCell(0); var Date = row.insertCell(1); var Color = row.insertCell(2); var checkbox = row.insertCell(3); userName.innerHTML = user; Date.innerHTML = date; Color.innerHTML = color; } function deleteMoreRows(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; for (var i = 0; i < rowCount; i++) { table.deleteRow(i); rowCount--; i--; } } 
 <!-- HTML markup for the input fields and table . --> <form align="center" method="GET"> Enter your name : <input type="text" name="users" id="user_id" value="name" onfocus="if(this.value == 'name') {this.value=''}" onblur="if(this.value == ''){this.value ='name'}"><br> Select the Date : <input type="date" id="date"><br> Select your favorite color: <select id="color" required> <option value="yellow">yellow</option> <option value="red">red</option> </select> <br> <br> <input type="button" id="mysubmit" value="Add Row" onClick="addMoreRows()"> <input type="button" id="delete" value="Delete" onClick="deleteMoreRows('tbl_id')"> </form> <br> <br> <table id="tbl_id" style="text-align:center" align="center" valign="top"> <thead> <tr> <th style="width:200px;">Name</th> <th style="width:200px;">Date</th> <th style="width:200px;">Color</th> </tr> </thead> 

Let me know if this works for you: 让我知道这是否适合您:

 //Javascript code to Add new rows onclick of a button and to delete row . var rowId = 0; function addMoreRows() { var user = document.getElementById('user_id').value; var date = document.getElementById('date').value; var color = document.getElementById('color').value; var table = document.getElementById('tbl_id'); var row = table.insertRow(); var rowBox = row.insertCell(0); var userName = row.insertCell(1); var Date = row.insertCell(2); var Color = row.insertCell(3); var checkbox = row.insertCell(4); rowBox.innerHTML = '<input type="checkbox" id="delete' + getRowId() + '">'; userName.innerHTML = user; Date.innerHTML = date; Color.innerHTML = color; } function deleteMoreRows(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; var selectedRows = getCheckedBoxes(); selectedRows.forEach(function(currentValue) { deleteRowByCheckboxId(currentValue.id); }); } function getRowId() { rowId += 1; return rowId; } function getRowIdsFromElements($array) { var arrIds = []; $array.forEach(function(currentValue, index, array){ arrIds.push(getRowIdFromElement(currentValue)); }); return arrIds; } function getRowIdFromElement($el) { return $el.id.split('delete')[1]; } //ref: http://stackoverflow.com/questions/8563240/how-to-get-all-checked-checkboxes function getCheckedBoxes() { var inputs = document.getElementsByTagName("input"); var checkboxesChecked = []; // loop over them all for (var i=0; i < inputs.length; i++) { // And stick the checked ones onto an array... if (inputs[i].checked) { checkboxesChecked.push(inputs[i]); } } // Return the array if it is non-empty, or null return checkboxesChecked.length > 0 ? checkboxesChecked : null; } //ref: http://stackoverflow.com/questions/4967223/delete-a-row-from-a-table-by-id function deleteRowByCheckboxId(CheckboxId) { var checkbox = document.getElementById(CheckboxId); var row = checkbox.parentNode.parentNode; //box, cell, row, table var table = row.parentNode; while ( table && table.tagName != 'TABLE' ) table = table.parentNode; if (!table) return; table.deleteRow(row.rowIndex); } 
 <!-- HTML markup for the input fields and table . --> <form align="center" method="GET"> Enter your name : <input type="text" name="users" id="user_id" value="name" onfocus="if(this.value == 'name') {this.value=''}" onblur="if(this.value == ''){this.value ='name'}"><br> Select the Date : <input type="date" id="date"><br> Select your favorite color: <select id="color" required> <option value="yellow">yellow</option> <option value="red">red</option> </select> <br> <br> <input type="button" id="mysubmit" value="Add Row" onClick="addMoreRows()"> <input type="button" id="delete" value="Delete" onClick="deleteMoreRows('tbl_id')"> </form> <br> <br> <table id="tbl_id" style="text-align:center" align="center" valign="top"> <thead> <tr> <th style="width:200px;">Delete</th> <th style="width:200px;">Name</th> <th style="width:200px;">Date</th> <th style="width:200px;">Color</th> </tr> </thead> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM