我尝试从此网址获取asciiName: -
http://services.gisgraphy.com/geoloc/search?lat=21.283300399780273&lng=72.9832992553711&radius=10000<br>
使用ajax jsonp。
这是完整的代码: -
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<Script>
var asciilast;
var asciiname="";
var lat="21.283300399780273";
var lng="72.9832992553711";
var radius="10000";
function getascii(){
$.ajax({
url: "http://services.gisgraphy.com/geoloc/search?lat="+lat+"&lng="+lng+"&radius="+radius+"&format=json",
async: false,
dataType:'jsonp',
success: function(data1) {
for(i=0;i<data1.result.length;i++) {
asciiname = asciiname+data1.result[i].asciiName+",";
console.log(asciiname);
asciilast = asciiname.replace(/\,$/, '');
}
alert(asciilast);
}
});
}
</Script>
<body onload="getascii()">
</body>
在这段代码的帮助下,我得到了完美的输出
但有时它会产生一些问题,比如某些结果没有asciiName然后它返回undefined。
如果结果没有asciiName那么我不想要未定义的
答案 0 :(得分:1)
asciiname = '';
asciilast = '';
if(data1.result[i].asciiName){
asciiname = asciiname+data1.result[i].asciiName+",";
console.log(asciiname);
asciilast = asciiname.replace(/\,$/, '');
}
答案 1 :(得分:1)
检查未定义
var value = data1.result[i].asciiName || "";
或
var value = data1.result[i].asciiName;
if (value) {
//do work here
}
答案 2 :(得分:1)
asciiname = asciiname + data1.result[i].asciiName+",";// this line
为其指定默认值:
asciiname += data1.result[i].asciiName ? data1.result[i].asciiName : "default value";
或者如果你想避免任何类型的if
:
asciiname += data1.result[i].asciiName || "default value";
将"default value"
替换为您想要的任何内容。我正在使用三元条件:
(condition) ? a : b; // equivalent to if(condition) {a} else {b};
答案 3 :(得分:1)
有一张像 -
这样的支票jQuery.type(data1) === "undefined" or `jQuery.type(data1.result[i])=== "undefined"`
在success
方法中并相应地处理逻辑。