Chrome/FF 中的对象处理?
Object handling in Chrome/FF?
我有这个代码:
$('.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};
(Uncaught SyntaxError: Unexpected token })在Firefox中一切正常。
我想这是因为 FF 的 "loose" 错误处理,但我如何正确地处理它?
我试图在 $.each 之前用 var arrayToSend = new Object();
初始化对象,但是在 POST.
之后给出了一个空数组
我的错误在哪里?
试试这个
var arrayToSend = {optionsChosen:values};
然后在 php 或您用于数据处理的任何内容中查找 POST 变量 optionsChosen。
您所做的是尝试创建一个参数数组为空的对象
你基本上是在你的代码中这样做的。不需要专家就可以看出这个说法有什么问题。
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);
}
我有这个代码:
$('.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};
(Uncaught SyntaxError: Unexpected token })在Firefox中一切正常。
我想这是因为 FF 的 "loose" 错误处理,但我如何正确地处理它?
我试图在 $.each 之前用 var arrayToSend = new Object();
初始化对象,但是在 POST.
我的错误在哪里?
试试这个
var arrayToSend = {optionsChosen:values};
然后在 php 或您用于数据处理的任何内容中查找 POST 变量 optionsChosen。
您所做的是尝试创建一个参数数组为空的对象
你基本上是在你的代码中这样做的。不需要专家就可以看出这个说法有什么问题。
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);
}