2011-08-30 49 views
1

我这行的Javascript jQuery代码的Javascript jQuery的替代变量和值

$.post('/blah', { comment_id: 1, description: ... }); 

不过,我真正需要的是改变comment_id在飞行中别的东西的能力,如何使这变成我可以改变的变量?

编辑

澄清,我的意思是改变comment_id值说photo_id,所以分配的左侧。

回答

7

使用JavaScript变量:https://developer.mozilla.org/en/JavaScript/Guide/Values,_Variables,_and_Literals

var commentId = 1; 
$.post('/blah', { comment_id: commentId, description: ... }); 

编辑:

var data = {}; // new object 
data['some_name'] = 'some value'; 
data['another_name'] = true; 
$.post('/blah', data); // sends some_name=some value&another_name=true 

编辑2:

$.post('/blah', (function() { var data = {}; // new object 
    data['some_name'] = 'some value'; 
    data['another_name'] = true; 
    return data; 
}())); 
+0

对不起,我不清楚,我清楚我的问题 – Bob

+0

好吧,这工作,但我不能做那内联呢? – Bob

+0

废话,我想不是通过这篇文章http://unethicalblogger.com/2008/03/21/javascript-wonks-missing-after-property-id.html – Bob

2
function doIt(commentId) { 
    $.post('/blah', { comment_id: commentId, description: ... }); 
} 

多亏了澄清卡梅伦,这里有一个例子做什么t他实际上要求OP,即在对象中创建一个属性名称动态。

function doIt(name, value) { 
    var options = {description: '', other_prop: ''}; 
    // This is the only way to add a dynamic property, can't use the literal 
    options[name] = value; 
    $.post('/blah', options); 
} 
1

分配对象变量第一,这样就可以操纵它:

var comment_id = 17; 
var options = { description: ... }; 
options[comment_id] = 1; // Now options is { 17: 1, description: ... } 
+0

这不是OP要求的,应该说'options ['comment_id'] = comment_id',不应该吗? –

+0

@Juan:我以为OP想改变属性(而不是价值),事实证明我是对的(尽管我同意这个问题最初是不明确的) – Cameron