Я воздержался от публикации здесь, так как я не чувствую, что у меня еще есть уровень навыков, чтобы отдать должное сообществу, но это меня полностью поставило в тупик.
У меня есть рекурсивная функция JavaScript, которая добавляет счетчик в конец всех элементов id и name в дереве узлов. Функция работает в FF, Chrome, Safari и IE9, но не в IE8.
function counterAppend(nodes,counter)
{
var newField = nodes.childNodes;
for (var i=0;i<newField.length;i++)
{
var theName = newField[i].name;
if (theName)
{
newField[i].name = theName + counter;
}
var theId = newField[i].id;
if (theId)
{
newField[i].id = theId + counter;
}
//recursive part
if(newField[i].childNodes.length>0)
{
newField[i] = counterAppend(newField[i],counter);
}
}
return nodes;
}
Я получаю сообщение об ошибке в строке: newField[i] = counterAppend(newField[i],counter);
В отладке он говорит: Прерывание ошибки времени выполнения JS - объект не поддерживает это свойство или метод
В чем разница между IE8 и другими браузерами и как я могу изменить это, чтобы обойти ошибку?