Javascript 按邮政编码打开天气图天气数据不起作用?
我需要这样做,当在框中键入邮政编码并单击提交按钮时,城市名称就会显示在框下。当我在输入邮政编码后单击按钮时,城市名称不会显示。它说错误在于WalloftText不是一个函数,但我不确定如何修复它。任何帮助都将不胜感激!!代码如下:Javascript 按邮政编码打开天气图天气数据不起作用?,javascript,jquery,weather,openweathermap,Javascript,Jquery,Weather,Openweathermap,我需要这样做,当在框中键入邮政编码并单击提交按钮时,城市名称就会显示在框下。当我在输入邮政编码后单击按钮时,城市名称不会显示。它说错误在于WalloftText不是一个函数,但我不确定如何修复它。任何帮助都将不胜感激!!代码如下: 例子 输入您的邮政编码: 提交 函数weatherFunction(){ var zip=document.getElementById(“zipBox”).value; jQuery(文档).ready(函数($){ $.ajax({ url:“http://
例子
输入您的邮政编码:
提交
函数weatherFunction(){
var zip=document.getElementById(“zipBox”).value;
jQuery(文档).ready(函数($){
$.ajax({
url:“http://api.openweathermap.org/data/2.5/weather?zip=“+zip+”,美国和appid=b3456f9acbfa64fc4495e6696ecdc9a5”,
数据类型:“jsonp”,
成功:功能(wallOfText){
城市=wallOfText(“名称”);
if(zip!=null){
document.getElementById(“结果”).innerHTML=wallOfText;
}
}
});
});
}
问题是,您试图调用wallOfText
就像它是一个函数一样,而实际上它是从AJAX调用的响应中反序列化的对象。因此,您需要访问对象的name
属性来设置city
变量,然后使用该变量来设置#result
元素的text()
请注意,函数中的document.ready处理程序是冗余的,您应该在发出请求之前进行zip
值验证。我还更新了使用jQuery绑定按钮上的事件处理程序的逻辑,而不是过时的onclick
属性。试试这个:
jQuery(函数(){
$(“#发送”)。单击(函数(){
var zip=$(“#zipBox”).val();
如果(zip!=''){
$.ajax({
url:“http://api.openweathermap.org/data/2.5/weather?zip=“+zip+”,美国和appid=b3456f9acbfa64fc4495e6696ecdc9a5”,
数据类型:“jsonp”,
成功:功能(wallOfText){
var city=wallOfText.name;
$(“#结果”)。文本(城市);
}
});
}
});
});代码>
输入您的邮政编码:
提交