仅在IE中查看页面时出现JavaScript问题。我明白了:
对象不支持此属性或方法
我的JavaScript代码中生成此错误的行是:
var panels = $('collapser').getElements('div.menuTable');
上面的代码试图在menuTable
元素中使用类collapser
获取所有div元素。
似乎IE不喜欢getElements
方法!
这里是HTML中页面的相关部分:
<div id="collapser" class="text2">
<h2 class="menu">system features1</h2>
<div id="div145fgjd584rgd" class="menuTable">
...
</div>
<h2 class="menu">system features2</h2>
<div id="div2sf54685454rtyt" class="menuTable">
...
</div>
</div>
答案 0 :(得分:2)
在IE 6,7和8(部分)中,Element.prototype是verbotten或元素只是不受益于对其原型的更改。
作为一种解决方法,当MooTools通过选择器($,$$)或正在创建它时(元素构造函数)访问时,MooTools会将所有Element.prototype
方法的副本添加到每个IE元素对象。
基本上:$("collapser")
或document.id("collapser")
或new Element('div#collapser')
也会复制方法和设置元素存储等 - 这是一次性操作。
这让我相信你拥有的$()
功能不是mootools功能。
例如:
this.$ = document.getElementById;
$("collapser").getElements("div"); // exception in IE6/7/8
是什么版本的mootools? console.log($);
//是mootools吗?
你也可以这样做:
var panels = document.getElements('#collapser div.menuTable');
答案 1 :(得分:0)
我修复了我的代码:
var ie8 = jQuery.browser.msie&amp;&amp; jQuery.browser.version ==“8.0”; var panels =(ie8?$('collapser')。document:$('collapser'))。getElements('div.menuTable');
干杯!