Chrome / FF中的对象处理?

时间:2015-02-25 09:03:21

标签: javascript jquery google-chrome firefox

我有这段代码:

$('.gBook').click(function(){
        var values = [];
        var getDiff = $('#totalPrice').attr("data-value");
        var i = 0;
        $('td[data-check="true"]').each(function(){
                var valueToPush = { };
                valueToPush["price"] = $(this).attr("data-price");
                valueToPush["id"] = $(this).attr("data-id");
                valueToPush["diff"] = getDiff;
                values.push(valueToPush);
                i++;
        });

        var arrayToSend = {values};

        $.post( '<?php echo PATH;?>ajax/updateRoom.php',arrayToSend, function(data){
                if(data != "ERROR"){
                    $('#all-content').html(data).css("overflow-y","auto");
                }else{
                    alert("ERROR");
                }
        });
    });

在Chrome中,此行显示错误var arrayToSend = {values};(未捕获的SyntaxError:意外的令牌})在Firefox中,一切都很好。 我想这是因为FF的“松散”错误处理,但我怎么做得对呢? 我试图在$ .each之前用var arrayToSend = new Object();初始化对象,但是在POST之后它会给出一个空数组。

我的错误在哪里?

1 个答案:

答案 0 :(得分:1)

试试这个

var arrayToSend = {optionsChosen:values};

然后在php或用于数据处理的任何内容中查找POST变量optionsChosen。

你所做的是尝试使用参数array = nothing

创建一个Object

您基本上是在代码中执行此操作。本专家没有看到这个陈述的错误。

arrayToSend = new function() {
    this.(new Array(1,2,3)); // This is cringeworthy if you see it like this.
}

在我给它的例子中,它转换为:

arrayToSend = new function() {
  this.optionsChosen = new Array(1,2,3);
}