Jquery和/或Javascript条件语句

时间:2015-12-13 17:17:43

标签: javascript jquery

我正在尝试显示区域和城市(如果可用),如果城市不可用,则显示国家/地区文本。我尝试添加if else条件并设置变量,但它返回空白,未定义或无效。在标题上我有下面的脚本

jQuery.ajax( { 
  url: '//freegeoip.net/json/', 
  type: 'POST', 
  dataType: 'jsonp',
  success: function(location) {
    jQuery('#city').html(location.city);
    jQuery('#region-name').html(location.region_name);
    jQuery('#country-name').html(location.country_name);  


  }


} );
 var mycountry = document.getElementById("country-name").value;
 var mycity = document.getElementById("country-name").value;
 var myregion = document.getElementById("city").value;

然后在我身上

if (mycity !=  "") {    
document.write(mycity); document.write(myregion);  }    
else     {
document.write(mycountry);    
}

我得到的结果是空的或未定义的。

参考 http://pastebin.com/xaqq16Ks

2 个答案:

答案 0 :(得分:0)

AJAX 是一种异步操作。您无法将document.write AJAX 一起使用。将if (city === '')逻辑添加到成功回调中。

答案 1 :(得分:0)

如果要在文本字段中显示它们,则应更改值而不是html:

$('#city').val(location.city);
$('#region-name').val(location.region_name);
$('#country-name').val(location.country_name);  

并且其余代码运行正常。

否则,如果要使用span / div或任何其他元素显示它们,请使用更改代码的第二部分,即,您应该获取innerHTML属性而不是值,如下所示:

 var mycountry = document.getElementById("country-name").innerHTML;
 var mycity = document.getElementById("city").innerHTML;
 var myregion = document.getElementById("region-name").innerHTML;