Javascript 除了这个未定义的方法,您将如何处理
我想检查元素是否存在,并且其中一个方法是否不是空的 请查看以下代码: var description; var desc = forecasts[i].getElementsByTagName('desc')[0] if (desc != null || desc.textContent == "") { description = desc.textContent } var描述; var desc=预测[i]。getElementsByTagName('desc')[0] 如果(desc!=null | | desc.textContent==“”){ description=desc.textContent } 因此,基本上,如果未定义元素,它会给我一个错误:Javascript 除了这个未定义的方法,您将如何处理,javascript,exception-handling,Javascript,Exception Handling,我想检查元素是否存在,并且其中一个方法是否不是空的 请查看以下代码: var description; var desc = forecasts[i].getElementsByTagName('desc')[0] if (desc != null || desc.textContent == "") { description = desc.textContent } var描述; var desc=预测[i]。getElementsByTagName('desc
未捕获类型错误:无法读取未定义的属性“textContent”
嗯,我可以使用嵌套的
ifs
,但我认为应该有一个更好的解决方案来解决这个问题。您的情况是错误的:
desc != null || desc.textContent == ""
因为未定义!=null
计算为false
,然后该条件将尝试访问desc.textContent
如果内容存在且不为空,则似乎要复制该内容;这可以在以下条件下完成:
var description,
desc = forecasts[i].getElementsByTagName('desc')[0];
if (desc && desc.textContent.length) {
description = desc.textContent;
}
你的情况不对:
desc != null || desc.textContent == ""
因为未定义!=null
计算为false
,然后该条件将尝试访问desc.textContent
如果内容存在且不为空,则似乎要复制该内容;这可以在以下条件下完成:
var description,
desc = forecasts[i].getElementsByTagName('desc')[0];
if (desc && desc.textContent.length) {
description = desc.textContent;
}
var string=”“;如果(string)
在JavaScript中的计算结果为false,那么您只需删除相等检查,并确保desc.textContent
的计算结果不为false
如果
desc
存在,但desc.textContent
未继续并获取desc.textContent
,则还应删除OR运算符。将OR语句替换为AND运算符if(desc&&desc.textContent)
示例:-注意有3条if语句,但只有一条计算结果为true
var string=”“;如果(string)
在JavaScript中的计算结果为false,那么您只需删除相等检查,并确保desc.textContent
的计算结果不为false
如果
desc
存在,但desc.textContent
未继续并获取desc.textContent
,则还应删除OR运算符。将OR语句替换为AND运算符if(desc&&desc.textContent)
示例:-注意有3条if语句,但只有一条语句的计算结果为true。实际上未定义==null为true。试试看。。。只有未定义的===null是错误的。问题是您在应用程序中“修复”的or运算符answer@MofX感谢您发现了这一点,我本想说它的计算结果为
false
,但我忘了在我的答案中加上:)实际上undefined==null是true。试试看。。。只有未定义的===null是错误的。问题是您在应用程序中“修复”的or运算符answer@MofX感谢您发现了这一点,我的意思是它的计算结果为false
,但是我忘了在我的答案中加上:)desc.textContent
实际上会导致一个错误,因为在这种情况下没有定义desc
。@我看到的杰克只是在测试这个问题,我已经更新了我的答案。代码现在是正确的,但答案的其余部分似乎没有很好的关联。@Jack我不明白你为什么这么认为,它解释了我对他的原始代码所做的更改。desc.textContent
实际上会导致错误,因为在本例中未定义desc
。@我看到Jack正在测试这个,我已经更新了我的答案。代码现在是正确的,但是答案的其余部分似乎与之不太相关。@Jack我不明白你为什么这么认为,它解释了我对他的原始代码所做的更改。