JQuery+;Ajax:JavaScript运行时错误:需要函数

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;

我是新来的,在互联网上找不到问题的答案

我的asp.net网页中有以下脚本。它给了我一个期望函数的错误

当我使用硬编码的城市名称和硬编码的div id时,效果很好,但是从我开始使用循环动态更改1)要使用的url、2)城市名称和3)div id时,我收到了错误。有什么解决办法吗?提前谢谢

    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);
                }
            }
        });
    });