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!

 

posted @ 2013-01-14 16:16  雪霁霜飞  阅读(295)  评论(0编辑  收藏  举报