while(x!== null)导致错误

时间:2011-12-20 16:19:19

标签: javascript

我正在使用第三方日历应用,该应用在Firefox中出现错误,显示“权限被拒绝访问属性'parentNode'”。在Safari中我得到“ TypeError:'undefined'不是任何对象(评估't.parentNode')”。这是我的while循环。注意:我没有编写此代码,但我正在尝试修复它并失败。

while (t.parentNode !== null) {
    if (t.id === this.divName) {                
        return true;
    }

    t = t.parentNode;
}

非常感谢任何帮助!

5 个答案:

答案 0 :(得分:5)

您的意思是while (t.parentNode)

在DOM的根目录中,parentNode将为null,而不是空数组。

答案 1 :(得分:2)

我猜你在谈论马特克鲁斯的日历。我修正了将下面一行改为你的循环的问题,因为这个帖子中没有一个解决方案适合我。

改变是在第49行,就在循环之前,它说:

var t = e.originalTarget;

应该是:

var t = e.target;

这使得来自萤火虫的消息消失了

答案 2 :(得分:1)

您确定t在循环开始时不是undefined吗?

答案 3 :(得分:1)

如果您使用Matt Kruse的日历,如果您查看粘贴代码前面的行,它会说:

var t = e.originalTarget; 

对我有用的修正方法是将其更改为:

var t = typeof e.originalTarget === 'undefined' ? e.srcElement : e.originalTarget; 

答案 4 :(得分:0)

您也可以使用

while (t = t.parentNode) {
    if (t.id === this.divName) {                
        return true;
    }
}

见此(基本)example