JQuery+;Ajax:JavaScript运行时错误:需要函数
我是新来的,在互联网上找不到问题的答案 我的asp.net网页中有以下脚本。它给了我一个期望函数的错误 当我使用硬编码的城市名称和硬编码的div id时,效果很好,但是从我开始使用循环动态更改1)要使用的url、2)城市名称和3)div id时,我收到了错误。有什么解决办法吗?提前谢谢JQuery+;Ajax:JavaScript运行时错误:需要函数,javascript,jquery,html,asp.net,ajax,Javascript,Jquery,Html,Asp.net,Ajax,我是新来的,在互联网上找不到问题的答案 我的asp.net网页中有以下脚本。它给了我一个期望函数的错误 当我使用硬编码的城市名称和硬编码的div id时,效果很好,但是从我开始使用循环动态更改1)要使用的url、2)城市名称和3)div id时,我收到了错误。有什么解决办法吗?提前谢谢 jQuery(document).ready(function ($) { var strurl; var encodedUrl; var city;
jQuery(document).ready(function ($) {
var strurl;
var encodedUrl;
var city;
var cities = ["firenze", "rome", "milan", "venice", "perugia", "urbino"];
for (var i = 1; i < 7; ++i) {
city = cities(i - 1);
strurl.toString = "http://api.aerisapi.com/observations/" + city + ",it?client_id=ZPYsvZLE4U9tkifhy3XMc&client_secret=IwQPYv7GA9XYR0bc9ziJ03ug5H2Tmh1gmxmAybEd";
$.ajax({
url: strurl,
dataType: "jsonp",
success: function (json) {
if (json.success == true) {
var ob = json.response.ob;
var weather = ob.weather.toLowerCase();
$('#js' + i + '1').html(city + ': ');
$('#js' + i + '2').html(weather);
$('#js' + i + '3').html(ob.tempC + '°');
}
else {
alert('An error occurred: ' + json.error.description);
}
}
});
};
});
jQuery(文档).ready(函数($){
var-strurl;
杜尔变种;
瓦尔市;
var cities=[“费伦泽”、“罗马”、“米兰”、“威尼斯”、“佩鲁贾”、“乌尔比诺”];
对于(变量i=1;i<7;++i){
城市=城市(i-1);
strurl.toString=”http://api.aerisapi.com/observations/“+city+”,it?客户id=ZPYsvZLE4U9tkifhy3XMc和客户机密=IWQPYV7GA9XYR0BC9ZIJ03UG5H2TMH1GMX付款”;
$.ajax({
网址:strurl,
数据类型:“jsonp”,
成功:函数(json){
if(json.success==true){
var ob=json.response.ob;
var weather=ob.weather.toLowerCase();
$('#js'+i+'1').html(city+':');
$('#js'+i+'2').html(天气);
$('#js'+i+'3').html(ob.tempC+''');
}
否则{
警报('发生错误:'+json.error.description);
}
}
});
};
});
问题在于:
city = cities(i - 1)
应该是:
city = cities[i - 1]
cities
变量是一个数组,因此您可以使用[]
符号访问其元素-您的代码使用括号,这意味着JS试图将其视为函数调用
在我看来,对于条件,最好不要硬编码数组的长度,而是使用它的.length
属性:
for (var i = 1; i <= cities.length; ++i) {
city = cities[i-1];
第二部分很有魅力。我学到了很多这个解决方案。谢谢
var cities = ["firenze", "rome", "milan", "venice", "perugia", "urbino"];
$.each(cities, function(i, city) {
var strurl.toString = "http://api.aerisapi.com/observations/" + city + ",it?client_id=ZPYsvZLE4U9tkifhy3XMc&client_secret=IwQPYv7GA9XYR0bc9ziJ03ug5H2Tmh1gmxmAybEd";
$.ajax({
url: strurl,
dataType: "jsonp",
success: function (json) {
if (json.success == true) {
var ob = json.response.ob;
var weather = ob.weather.toLowerCase();
i++;
$('#js' + i + '1').html(city + ': ');
$('#js' + i + '2').html(weather);
$('#js' + i + '3').html(ob.tempC + '°');
}
else {
alert('An error occurred: ' + json.error.description);
}
}
});
});