使用javascript / scriptaculous获取'sections.each不是函数'

时间:2010-06-01 07:32:39

标签: javascript scriptaculous

尝试使用scriptaculous的示例代码来执行拖放操作。它在IE8中运行良好,但Firefox和Chrome生成错误“sections.each is not a function”

以下是代码:

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 个答案:

答案 0 :(得分:2)

本机实现上的getElementsByClassName方法返回NodeList,而不是Array对象。

PrototypeJS中的$A方法将任何可迭代对象转换为Array对象,例如:

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