0
我有一個表有兩個按鈕(添加&刪除)。該表包含三列(一個複選框,一個文本框和一個下拉框)。因此,當我點擊添加按鈕時,將插入一個複選框,一個文本框和一個下拉框。我想要做的是再添加一個包含Serial-No的列。序列號應該隨着每一個新行增加。就像... 1,2,3,4等。然後,當我想要刪除一行時,我會在複選框上勾選一個標記並按下刪除按鈕,該特定行將被刪除。序列號應該重新排列。我的代碼如下:如何在Javascript表中添加動態序列號
HTML
<div class="container">
<INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />
<INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />
<TABLE id="dataTable" width="350px" border="1">
<TR>
<TD><INPUT type="checkbox" name="chk"/></TD>
<TD><INPUT type="text" name="txt"/></TD>
<TD>
<SELECT name="country">
<OPTION value="in">India</OPTION>
<OPTION value="de">Germany</OPTION>
<OPTION value="fr">France</OPTION>
<OPTION value="us">United States</OPTION>
<OPTION value="ch">Switzerland</OPTION>
</SELECT>
</TD>
</TR>
</TABLE>
的Javascript
<SCRIPT language="javascript">
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[0].cells[i].innerHTML;
switch(newcell.childNodes[0].type) {
case "text":
newcell.childNodes[0].value = "";
break;
case "checkbox":
newcell.childNodes[0].checked = false;
break;
case "select-one":
newcell.childNodes[0].selectedIndex = 0;
break;
}
}
}
function deleteRow(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for(var i=0; i<rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if(null != chkbox && true == chkbox.checked) {
if(rowCount <= 1) {
alert("Cannot delete all the rows.");
break;
}
table.deleteRow(i);
rowCount--;
i--;
}
}
}catch(e) {
alert(e);
}
}
</SCRIPT>
行元素有一個'rowIndex'財產,如果這能幫助 –
是這樣的說法對'如果(空!= chkbox &&真== chkbox.checked)' 賦值運算符從左工作到右邊,同樣適用於其他運算符,它應該是'if(chkbox!= null && chkbox.checked == true)'。同時檢查你的第10行'newcell.innerHTML = table.rows [0] .cells [i] .innerHTML;'它應該是'rows [i]'而不是'rows [0]',因爲它應該更新當前行的內容而不是第一排。 –
一般來說,重新排列序列號是一個壞主意。他們應該只使用一次,如果一個項目將被刪除,所有的前一個和下一個序列號應該保留。除此之外,錶行具有'rowIndex'屬性。您可以通過將一行的rowIndex添加到種子編號來形成序列號。 – Teemu