我正在尝试使用javascript解析RSS提要。有时一个feed有多个类别,所以我想检查第2项是否有任何内容。如果我不检查我收到错误,当我使用以下代码检查时,我也会收到错误。 (如果定义了变量,我只是将var cat2设置为测试。)
var catItem = item.getElementsByTagName("category").item(2).text;
if (typeof catItem != 'undefined'){
var cat2 = "1"
}
else{
var cat2 = "2"
}
答案 0 :(得分:1)
检查变量是否未定义可以通过以下方式解决,如果(typeof catItem!==' undefined'){...}
但是,我只想指出未定义的变量与未声明的变量不同。你问的不是"测试未声明的变量"当你加入标题时。
未定义的变量是"声明的变量"但没有分配任何价值。未声明的变量是未使用" var"声明的变量。关键字。
答案 1 :(得分:0)
var catItem = document.getElementsByTagName("category")[2];
var cat2 = "2";
if (typeof catItem !== 'undefined') {
cat2 = "1";
}
你也可以通过使用三元操作来缩短它:
var catItem = document.getElementsByTagName("category")[2];
var cat2 = catItem ? "2" : "1";
答案 2 :(得分:0)
只有在位置2的范围内有元素时,您的代码才有效。
为什么不这样做:
if(item.getElementsByTagName("category").length > 1) {
答案 3 :(得分:0)
您可以尝试这样的事情:
var catItem = item.getElementsByTagName("category");
if(catItem[1]) {
...
}
else {
...
}