我重新使用了一个常见的 addRow 函数,但是我的基本 js 技能限制了我对代码进行重大更改。
这个优雅的功能有效,但是我希望新行中的所有元素与前一行具有不同的名称。朋友提议使用
var new_name = old_name.replace(rowCount, rowCount+1); //by using a counter
,所以在下面的示例中,让新创建的行包含元素“username_2”和“email_2”
谢谢!
<INPUT TYPE="text" NAME="username_1"> : name <BR>
<INPUT TYPE="text" NAME="email_1"> : email <BR>
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;
//alert(newcell.childNodes);
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;
}
}
}