prototype.js1.6.1 getElementsByTagName chrome中的null值

时间:2014-02-04 01:47:14

标签: javascript html google-chrome prototypejs

  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;

},

1 个答案:

答案 0 :(得分:0)

我发现了问题

getElementsByTagName方法需要使用正确的标签 (在ie9以下版本中工作但是,ie10,chrome,FF等不起作用)

检查你的标签!