Javascript cloneNode проблема в FireFox

Приведенный ниже 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 ответ

Решение

.all вообще не существует, только document.all, но это даже не стандарт. Internet Explorer имеет некоторые пользовательские свойства, но вы не должны полагаться на них. Вы, вероятно, хотите .children:

var NewField = NewTableRow.children;

или же .cells:

var NewField = NewTableRow.cells;
Другие вопросы по тегам