1

私はこのURLから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がなく、未定義を返すなどの問題が発生する場合があります。
結果に asciiName がない場合、未定義は必要ありません

4

4 に答える 4

1
    asciiname = '';
    asciilast = '';

    if(data1.result[i].asciiName){
        asciiname = asciiname+data1.result[i].asciiName+",";
        console.log(asciiname);
        asciilast = asciiname.replace(/\,$/, '');
    }
于 2013-05-08T12:37:47.003 に答える
1

未定義のチェックより

var value = data1.result[i].asciiName || "";

また

var value = data1.result[i].asciiName;
if (value) {
   //do work here
}
于 2013-05-08T12:37:53.943 に答える
1
asciiname = asciiname + data1.result[i].asciiName+",";// this line

それにデフォルト値を割り当てます。

asciiname += data1.result[i].asciiName ? data1.result[i].asciiName : "default value";

ifまたは、あらゆる種類の sを避けたい場合:

asciiname += data1.result[i].asciiName || "default value";

必要なものに置き換え"default value"てください。三項if条件を使用しています:

(condition) ? a : b; // equivalent to if(condition) {a} else {b};
于 2013-05-08T12:38:21.520 に答える