Получение 'section.each не является функцией' с javascript / scriptaculous - PullRequest
0 голосов
/ 01 июня 2010

Попробуем пример кода для scriptaculous для выполнения перетаскивания. В IE8 он работает нормально, но Firefox и Chrome выдают ошибку «section.each не является функцией»

Вот код:

function getGroupOrder() {
    var sections = document.getElementsByClassName('section');
    var alerttext = '';
    sections.each(function(section) {
        var sectionID = section.id;
        var order = Sortable.serialize(sectionID);
        var mySectionID = Right(section.id);
        var myLen = String(Sortable.sequence(section)).length;
        var StuCode = "";
        if (myLen ==8)
        {var StuCode = String(Sortable.sequence(section)).substring(myLen, 2);}
        else if (myLen ==9)
        {var StuCode = String(Sortable.sequence(section)).substring(myLen, 3);}

        alerttext += mySectionID + ': ' + StuCode + '\n';
            alerttextb = sectionID + ': ' + StuCode + '\n';
    }
}

На форуме было предложено одно решение: «Мне удалось решить эту проблему, обернув вызов document.getElementsByClassName ('section'); с помощью $ A ()", но я понятия не имею, что это значит! Я спросил, что это значит, но пост был написан в 2008 году, но ответа пока нет.

Спасибо за предоставленную помощь.

Привет

1 Ответ

2 голосов
/ 01 июня 2010

Метод getElementsByClassName в нативных реализациях возвращает NodeList, а не Array объект.

Метод $A от PrototypeJS для преобразования любого повторяемого объекта в объект Array, например:

$A(sections).each(function(section) {
  //...
});
...