0

下面的 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);
}
4

1 回答 1

3

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

var NewField = NewTableRow.children;

.cells

var NewField = NewTableRow.cells;
于 2011-08-23T17:12:54.267 回答