尝试使用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年制作的,目前还没有回复。
感谢您提供的任何帮助。
此致
答案 0 :(得分:2)
本机实现上的getElementsByClassName
方法返回NodeList
,而不是Array
对象。
PrototypeJS中的$A
方法将任何可迭代对象转换为Array
对象,例如:
$A(sections).each(function(section) {
//...
});