在表格中添加和删除[带输入字段]的行

时间:2012-02-15 18:25:04

标签: javascript

我是一个完整的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--;
    }


}

2 个答案:

答案 0 :(得分:1)

您有几个错误,但这是基本的工作模型。我认为你应该可以从这里解决它

http://jsfiddle.net/dBzkX/

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。