getElements: function(form) {
console.log(form);
var elements = $(form).getElementsByTagName('*'), //problem point
element,
arr = [ ],
serializers = Form.Element.Serializers;
console.log("elements:"+elements);
console.log("arr:"+arr);
console.log("serializers:"+serializers);
for (var i = 0; element = elements[i]; i++) { // not working
arr.push(element);
}
return arr.inject([], function(elements, child) {
if (serializers[child.tagName.toLowerCase()])
elements.push(Element.extend(child));
return elements;
})
},
在IE 7,8,9中工作
但在chrome和IE10中,元素值为null(我试过console.log(elements [0]);)
图像是我的控制台日志
我该怎么办?
请帮我绅士。
![ 请点击错误按钮。
] error
下面是prototype.js 1.7.1版本
getElements: function(form) {
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
var elements = $(form).getElementsByTagName('*');
if(is_chrome){
var elements = $(form).select('*'); //still problem in chrome
console.log(elements.length);
}
var element, results = [], serializers = Form.Element.Serializers;
for (var i = 0; element = elements[i]; i++) {
if (serializers[element.tagName.toLowerCase()])
results.push(Element.extend(element));
}
return results;
},
答案 0 :(得分:0)
我发现了问题
getElementsByTagName方法需要使用正确的标签 (在ie9以下版本中工作但是,ie10,chrome,FF等不起作用)
检查你的标签!