我正在编写一个函数来发送$ .post show请如何正确地将变量插入到对象中,具体取决于它们是否已设置。 这就是我想要做的事情:
function SendCommand(Command, QuestionId, Attr) {
$.post('/survey/admin/command',
{
'Command': Command,
if (QuestionId) 'QuestionId' : QuestionId,
if (Attr) 'Attribute' : Attr
}
);
}
谢谢!
答案 0 :(得分:3)
您始终可以在$ .post调用之前创建数据
var data = {
'Command': Command
};
if (QuestionId) {
data.QuestionId = QuestionId;
}
if (Attribute) {
data.Attribute = Attribute;
}
$.post("your/url", data);
答案 1 :(得分:1)
这是实现此目的的快捷方式......
$.post('/survey/admin/command',
{
Command: Command,
QuestionId: QuestionId || undefined,
Attribute: Attribute || undefined
}
);
此方法的最大缺点是,某些值(例如零或空字符串)是错误的。所以这不是一个全能的方法。
答案 2 :(得分:0)
如果存在空值的可能性,我会选择:
$.post('/survey/admin/command',
{
'Command': Command,
'QuestionId' : QuestionId ? QuestionId : undefined,
'Attribute' : Attribute ? Attribute : undefined,
}
);
否则,我认为jQuery会忽略未定义的参数。
答案 3 :(得分:0)
试试这个(未经测试的)
function SendCommand(Command, QuestionId, Attr) {
var data = {};
data['Command'] = Command;
if (QuestionId) data['QuestionId'] = QuestionId;
if (Attr) data['Attribute'] = Attr;
$.post('/survey/admin/command',data );
}