5

我正在尝试在 ajax 调用中处理完整的函数。如果值未定义,我想将 var 转换为空字符串。否则,我想将值捕获到字符串数组中。

问题是我正在输入 if 语句,即使将相关变量的值记录为未定义也是如此。我在这里想念什么?

completefunc: function (xData, Status) {
      $(xData.responseXML).SPFilterNode("z:row").each(function() {
        if(typeof $(this).attr("ows_Products") !== undefined) {
          console.log($(this).attr("ows_Products"));
          arr = $(this).attr("ows_Products").split(',');
        }
        else {
          arr = "";
        }
      });
    }
4

2 回答 2

16

typeof返回一个字符串值,因此您需要将其"undefined"作为字符串进行比较。例如,

if(typeof $(this).attr("ows_Products") !== "undefined") { ... }

编辑 - 更多信息:

如果您查看MDN 页面的 typeof,您会看到:

typeof 运算符返回一个字符串,指示未计算的操作数的类型。

这与返回自身非常不同Type(在 JavaScript 中可能类似于返回构造函数,如String,Array等)。因此,在使用 时typeof,您将始终与诸如"object""string""undefined"等字符串进行比较。

于 2012-05-14T16:44:44.097 回答
0
if($(this).attr("own_Products")){
       arr = $(this).attr("ows_Products").split(',');
}else{
       arr=""
}
于 2012-05-14T16:59:07.287 回答