0

我正在尝试使用 javascript 解析 RSS 提要。有时一个提要有多个类别,所以我想检查第 2 项是否有任何内容。如果我不检查,我会收到错误消息,当我使用以下代码检查时,我也会收到错误消息。(我只是将 var cat2 设置为测试变量是否已定义)。

var catItem = item.getElementsByTagName("category").item(2).text;

        if (typeof catItem != 'undefined'){
            var cat2 = "1"
        }
        else{

            var cat2 = "2"      
        }
4

4 回答 4

1

检查变量是否未定义可以通过上面回答的以下方法来完成,if (typeof catItem !== 'undefined'){ ... }

但是,我只想指出未定义的变量与未声明的变量不同。您要问的不是标题中的“测试未声明的变量”。

未定义变量是“已声明”但未分配任何值的变量。未声明的变量是未使用“var”关键字声明的变量。

于 2015-09-22T00:31:59.157 回答
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";
于 2011-04-04T16:10:25.977 回答
0

只有在位置 2 范围内有元素时,您的代码才有效。

为什么不这样做:

if(item.getElementsByTagName("category").length > 1) {
于 2011-04-04T16:10:51.343 回答
0

你可以尝试这样的事情:

var catItem = item.getElementsByTagName("category");
if(catItem[1]) {
   ...
}
else {
   ...
}
于 2011-04-04T16:11:04.150 回答