我是一个完整的javascript noobie。我开发了以下代码并修改了我发现的一些随机教程。 它应该在表中添加和删除带有输入字段的行,但是它什么都不做。值得一提的是,我将该功能称为链接。我在标签内和标题处添加了“javascript:addRow()”。我错过了什么吗?
function addRow(){
tableID="ticketCreate";
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
if(rowCount<7){
var row = table.insertRow(rowCount);
var cel1=row.insertCell(0);
var element1= document.createElement("input");
var element1.type="text";
cell1.appendChild(element1);
var cell2=row.insertCell(1);
var element2.type="text";
cell1.appendChild(element2);
var cell2=row.insertCell(2);
var element3.type="text";
cell1.appendChild(element3);
rowCount++;
}
}
function removeRow(){
tableID="ticketCreate";
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
if(rowCount>1){
table.deletRow(rowCount);
rowCount--;
}
}
答案 0 :(得分:1)
您有几个错误,但这是基本的工作模型。我认为你应该可以从这里解决它
function addRow() {
var tableID="ticketCreate";
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
if(rowCount<7){
//You declared var in front of the same variable twice. Don't do that.
//You were appending cells inside existing cell. Add them to row instead.
var row = table.insertRow(rowCount);
var cell1 = row.insertCell(0);
var element1 = document.createElement('input');
element1.type="text";
cell1.appendChild(element1);
row.insertCell(1);
row.insertCell(2);
}
}
function removeRow(){
var tableID="ticketCreate";
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
if(rowCount>1){
//you had type in deletRow. Also, you can pass in -1 to remove the last row
table.deleteRow(-1);
}
}
答案 1 :(得分:0)
错误在于:
var element1= document.createElement("input");
var element1.type="text";
应该是
var element1= document.createElement("input");
element1.type="text";
和其他元素类似。
使用
声明变量var element1 = 'something';
然后使用
访问它element1 = 'something different';
中也有拼写错误
var cel1=row.insertCell(0);
需要
var cell1=row.insertCell(0);
此外,您没有定义元素2和3, 使用cell2两次,它应该是cell2和cell3,并且只附加到cell1。