2015-10-15 46 views
0

我有以下代码添加对象属性作为对象ID

$.post('page.php', {prop.name: prop.hash}, function (data) { 
    console.log(data); 
}); 

注意,prob是一个对象和(namehash)是属性。

prop.cr_name的问题,总是给我这个错误消息: SyntaxError: missing : after property id

而且我从prop.name改变了方式prop['name']但仍然出现问题。

如何解决这个问题?

+0

的可能的复制[使用一个变量在JavaScript的关键对象常量](http://stackoverflow.com/questions/2274242 /使用变量的一个键在一个JavaScript的对象文字) – Kaiido

回答

0

可以传递数据作为查询字符串

$.post('page.php', prop.name + '=' + prop.hash, function (data) { 
    console.log(data); 
}); 

,或者您需要在下面的方法,Using a variable for a key in a JavaScript object literal创建对象,JavaScript set object key by variable

var data={}; 
data[prop.name] = prop.hash; 

$.post('page.php', data , function (data) { 
    console.log(data); 
}); 

或数组

$.post('page.php', [{ name : prop.name, value : prop.hash }], function (data) { 
    console.log(data); 
}); 

Doc:http://api.jquery.com/jquery.ajax/

+0

它不仅涉及jquery的ajax,但一般的对象声明 – Kaiido

+0

谢谢你,第一种方式不起作用,但第二种方式工作正常。也谢谢你重新打开我的问题。 –

0

var a=[{ name : prop.name, value : prop.hash }]; 

创建阵列,并传递给方法等

$.post('page.php',a, function (data) { 
    console.log(data); 
});