Javascript 而(x!==null)会导致错误

Javascript 而(x!==null)会导致错误,javascript,Javascript,我使用的第三方日历应用程序在Firefox中抛出一个错误,该错误显示“访问属性'parentNode'的权限被拒绝””。在Safari中,我得到“TypeError:'undefined'不是任何对象(计算't.parentNode')”。这是我的while循环。注意:我没有写这段代码,但我正在尝试修复它,但失败了 非常感谢您的帮助 你的意思是while(t.parentNode) 在DOM的根目录下,parentNode将为null,而不是空数组。您也可以使用 while (t = t.par

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

非常感谢您的帮助

你的意思是
while(t.parentNode)

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

您也可以使用

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

查看此(基本)

是否确定
t
在循环开始时不是
undefined

var t = e.originalTarget; 
对我有效的修复方法是将此更改为:

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

我猜你说的是马特·克鲁斯的日历。我修复了将下面的行更改为您的循环的问题,因为此线程中显示的任何解决方案都不适用于我

变化发生在第49行,就在循环之前,它说:

var t=原始目标

应该是:

var t=e.target


这使得firebug的消息消失了

我正在测试.length属性。我错误地将其留在了代码示例中。已更新。请在(t.parentNode)时尝试
;这将检查
未定义的
。而(t.parentNode){//stuff}仍然给我相同的错误。你的答案是正确的,但我没有测试t是否为null。这是在我的特殊情况下发生的情况。我用一个if(t){/}来包装它,它似乎解决了这个问题。谢谢大家的回答!Chrome提供
参考错误:未定义t
。调试更清晰:-)我正在使用他的日历。非常感谢。
var t = typeof e.originalTarget === 'undefined' ? e.srcElement : e.originalTarget;