我正在尝试显示区域和城市(如果可用),如果城市不可用,则显示国家/地区文本。我尝试添加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);
}
我得到的结果是空的或未定义的。
答案 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;