Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery和/或Javascript条件语句_Javascript_Jquery - Fatal编程技术网

Jquery和/或Javascript条件语句

Jquery和/或Javascript条件语句,javascript,jquery,Javascript,Jquery,我试图显示地区和城市(如果可用),如果城市不可用,则显示国家文本。我尝试添加if-else条件并设置变量,但它返回空白、未定义或null。在标题上,我有下面的脚本 jQuery.ajax( { url: '//freegeoip.net/json/', type: 'POST', dataType: 'jsonp', success: function(location) { jQuery('#city').html(location.city); jQue

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

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);    
}
我得到的结果是空的或未定义的

参考文献
AJAX是一种异步操作。不能使用
文档。请使用AJAX编写
。将
if(city=='')
逻辑添加到成功回调中。

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

$('#city').val(location.city);
$('#region-name').val(location.region_name);
$('#country-name').val(location.country_name);  
剩下的代码运行得很好

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

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

首先,您是否检查了从ajax请求返回的数据是否已定义?
if(mycity!=”)
如果未定义,则可能会失败,但更好的方法是通过
if(mycity)
还原条件。他只是将ajax与
文档一起使用。write
。我的意思是,签入主体在ajax异步时同步运行<代码>文档。写入
当然会输出空值。如果id这样做,它将显示而不会出现问题,问题是我正在尝试创建一个条件如何显示这些城市和国家您可以提供参考或示例吗?谢谢,我不确定添加“check”意味着什么。ajax
将在几秒钟后调用
success
函数。不是马上。如果(mycity!=“”),则不能放置
if{
在正文中,因为它将在ajax完成加载之前运行。只需将该部分,包括
var mycountry…
移动到
success
函数。这取决于您的代码在脚本中的组织方式。因此,我们无法看到您的文件位于何处。因此,这可能是由许多因素造成的。请发布一些相关信息是的,这带来了另一个问题。是
#country name
a
div
还是
input
?你在某处使用
.html()
,在另一处使用
.value
。除非country name是一个输入,然后他应该使用
jQuery(“#country name”).val
insteadget未定义的文档.write(mycountry);答案已修复。但是您还应该注意,在原始代码country name元素值中,元素值被分配给mycountry和mycity。当然,它将不工作,Ajax调用是一个异步操作。javascript首先执行所有同步操作,然后执行异步操作。这就是为什么MyUndry、mycity、myregion未定义,因为它们是在设置html之前重新显示。当数据可供客户端使用时,您的if/else代码应立即移动到success函数中。