今天出了个故障,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!