2

标题可能很差,但我想不出如何解释。

我有一个有效的ajax:

var inputName = $('#input').prop('name');

$.ajax({
    url: 'file.php?'+inputName+'=0&uID='+uid+'',
    type: 'POST'
});

如您所见,变量名称已更改并已预先设置。

我最终发送了一个帖子网址,例如:

file.php?someName=0&uID=291

但我更喜欢以下格式,因为对我来说它更具可读性和更少的代码:

$.ajax({
    url: 'file.php',
    type: 'POST',
    data: { '+inputName+': 0, uID: '+uid+' },
});

但是,问题是,我最终得到了一个请求网址,例如:

file.php?'+inputName+'=0&uID=291

或者如果我输入 data: { inputName: 0 } 等,那么 'inputName' 只是变量名。

使用变量作为键是否可以实现我想做的事情?如果有怎么办?还是我应该坚持使用冗长的 ? 和 & ?

4

1 回答 1

11

要将变量用作对象中的键,您需要使用括号表示法:

var obj = {uID: uid};
    obj[inputName] = 0;

$.ajax({
    url: 'file.php',
    type: 'POST',
    data: obj
});
于 2013-04-03T16:20:20.677 回答