错误:变量初始化无效

时间:2011-11-11 15:26:30

标签: javascript jquery ajax

只有在ajax调用success时才需要调用函数。

代码:

<script>
    function removeFromCart(id) {
        var value = "";
        for(var i=0; i<id.length; i++)
            if(!isNaN(id[i]))
                value += id[i];
        $.ajax({
            type: "POST",
            url: "http://url.com/removefromcart.php",
            data: "id="+value,
            success: function(response){
                afterRemove(response);
            }
        });
    }

    function afterRemove(response) {
        if(response[0] == "r") {
            var prezzo = "";
            for(var i = 1; i<respose.length; i++)
                var prezzo += response[i];
            document.getElementByid("prezzo").innerHTML = prezzo+".00 &euro;";
            $("#segnale"+value).fadeOut();
        }
    }
</script>

问题是Firebug在页面加载时给出了这个错误:

invalid variable initialization: var prezzo += response[i];

这是因为afterRemove函数在页面加载时调用,而不仅仅是在ajax成功时调用。怎么解决这个问题?

4 个答案:

答案 0 :(得分:6)

你定义/ var变量prezzo两次

var prezzo = ""; // <-- here
for(var i = 1; i<respose.length; i++)
    var prezzo += response[i]; // <-- and here

答案 1 :(得分:2)

var prezzo += response[i]

这是无效的,因为var prezzo表示您正在创建名为prezzo的新变量。然后,您尝试添加到该变量。您无法添加到全新的变量,因为它还没有值。只需删除var

答案 2 :(得分:1)

var prezzo += response[i];

这条线毫无意义。 a += b表示a = a+b

在您的情况下,您正在var prezzo += response[i]; var prezzo = prezzo + response[i];prezzo尚不存在(因为您在那里声明它),因此您无法添加其值,因为它还没有值(还)。

(另外,它的语法无效)

编辑:我注意到你之前宣布过var prezzo = "";,所以只需删除var

prezzo += response[i];

应该看起来像:

var prezzo = "";
   for(var i = 1; i<response.length; i++)
      prezzo += response[i];

答案 3 :(得分:1)

如果在执行++时初始化变量。你总会得到错误...

function afterRemove(response) {
    if(response[0] == "r") {
        var prezzo = "";
        for(var i = 1; i<respose.length; i++)
             prezzo += response[i];
        document.getElementByid("prezzo").innerHTML = prezzo+".00 &euro;";
        $("#segnale"+value).fadeOut();
    }
}