ie下form.elements指向本身的问题

今天出了个故障,ie下的数据展示有误,而其他浏览器正常,查询到最后的结果是ie下少了3个参数,比较奇怪的是参数是通过KISSY库循环去取的,理论上兼容不应该存在。

循环如下:

var formEls = DOM.filter(DOM.get('#J_Form').elements, function(el){

        return DOM.hasClass(el, 'J_FareParam');

});

 

看上去挺简单的。。可是就不对,debug后发现

form的elements返回的结果是他本身,也就是说form.elements == form,ie<=8

网上也有人碰到这个问题:https://mootools.lighthouseapp.com/projects/2706/tickets/582-formelements-form-in-ie

解决方案,使用数组下标替换原生的for:

var forms = DOM.get('#J_Form').elements;

for (var i = 0; i < forms.length; i++) {

     var el = forms[i];

     if(DOM.hasClass(el, 'J_FareParam')) {

         //TODO

     }

}

 

Done!

 

你可能感兴趣的:(element)