我正在尝试在ajax调用中处理完整的函数。如果值未定义,我想将var转换为空字符串。否则,我想将值捕获到字符串数组中。
问题是我正在输入if语句,即使在记录有问题的变量的值时返回为undefined。我在这里缺少什么?
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 = "";
}
});
}
答案 0 :(得分:16)
typeof
返回一个字符串值,因此您需要将"undefined"
作为字符串进行比较。如,
if(typeof $(this).attr("ows_Products") !== "undefined") { ... }
编辑 - 更多信息:
如果您查看MDN page for typeof,就会看到:
typeof运算符返回一个字符串,指示未评估的操作数的类型。
这与返回Type
本身(在JavaScript中可能类似于返回String
,Array
之类的构造函数等)非常不同。因此,在使用typeof
时,您将始终与"object"
,"string"
,"undefined"
等字符串进行比较。
答案 1 :(得分:0)
if($(this).attr("own_Products")){
arr = $(this).attr("ows_Products").split(',');
}else{
arr=""
}