javascript - 变量不会在 IE7 中分配,但在 IE8+ 和任何其他浏览器中分配得很好

标签 javascript dom-events internet-explorer-7

在这个略长的代码片段中:

(function() {
    var element = function(str) {
        return document.getElementById(str);
        },

        parent = document.getElementsByTagName('ul')[0].getElementsByTagName('li'),
        len = parent.length,

        swap_slide = function(slide){
            return function(event) {
                event.preventDefault ? event.preventDefault() : event.returnValue = false;
                
                var slides = element('main').getElementsByTagName('div'),
                    len = slides.length;
                for (var i=0; i<len; i++) {
                    slides[i].style.display = 'none';
                }
                slide.style.display = 'block';
            }
        };

    for (var i=0; i<len; i++) {
        var link = parent[i].getElementsByTagName('a')[0],
            slide = element(parent[i].getElementsByTagName('a')[0].getAttribute('href').substr(1));

        if (link.addEventListener) {
            link.addEventListener('click', swap_slide(slide), false);
        } else if (link.attachEvent) {
            link.attachEvent('onclick', swap_slide(slide));
        }
    }

    if (!element(location.hash.substr(1)))
        element('slajd-0').style.display = 'block';
    else 
        element(location.hash.substr(1)).style.display = 'block';
})();

在 Chrome、Opera、IE9、IE8、Safari 中一切正常,但是在 IE7 中变量 slidenull,IE7 报告函数 swap_slide 中的错误,但是错误可能出在其他地方。我不确定这是我造成的范围错误还是简单的 IE 延迟?

编辑:IE 吐出的错误是:

Error: Unable to get value of the property 'style': object is null or undefined

最佳答案

改变

getAttribute('href')

getAttribute('href',2)

获取定义的 href 而不是扩展的 URL

http://msdn.microsoft.com/en-us/library/ms536429%28v=vs.85%29.aspx

关于javascript - 变量不会在 IE7 中分配,但在 IE8+ 和任何其他浏览器中分配得很好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6321126/

相关文章:

javascript - 选择并显示特定数据值JQuery

javascript - 需要在javascript onload中调用这个函数

javascript - 使用 JQuery.throwable 将 div 添加到场景

css - IE7 CSS 悬停问题

javascript - Internet Explorer 7 element.getAttribute 方法中的错误

css - font-size 0 仍然出现在 IE7 中

javascript - Array.prototype.map() 和 Array.prototype.forEach()

javascript - YUI 事件似乎不能递归工作

javascript - dispatchEvent(new Proxy(event, {}) 不起作用

Javascript "mousemove"事件有时不会触发