FireFox中的Javascript cloneNode问题

时间:2011-08-23 17:03:29

标签: javascript firefox clonenode

下面的JavaScript在Internet Explorer中运行良好,但在FireFox中不起作用。

它挂起了“NewField is undefined”,这就是行:

for (var i=0;i<NewField.length;i++)

这是将重命名该表行上的表单字段的循环。

您可以在此处查看整个页面http://www.sorenwinslow.com/CloneRowTest.asp

function CloneRows(TableRowId)
{
var NumRows = document.forms["TestForm"].NumRows.value;
NumRows++;
document.forms["TestForm"].NumRows.value = NumRows;
var RowToClone = document.getElementById(TableRowId);
var NewTableRow = RowToClone.cloneNode(true);
NewTableRow.id = TableRowId + NumRows ;
NewTableRow.style.display = "table-row";
var NewField = NewTableRow.all;
for (var i=0;i<NewField.length;i++)
{
    var theName = NewField[i].name;
    if (theName)
    {
        NewField[i].name = theName + NumRows;
    }
}
var insertHere = document.getElementById(TableRowId);
insertHere.parentNode.insertBefore(NewTableRow,insertHere);
}

1 个答案:

答案 0 :(得分:3)

.all通常不存在,只有document.all,但它甚至不是标准的。 Internet Explorer具有一些自定义属性,但您不应该依赖它们。您可能需要.children

var NewField = NewTableRow.children;

.cells

var NewField = NewTableRow.cells;