在下面的代码中,我正在尝试发送一个键值对,我总是得到错误:
“失踪:财产ID后”
$(".general").change(function () {
fields = { $(this).attr('id') : "1" };
$.ajax({
type: "POST",
url: "ajax/update_general.php",
data: { fields: fields },
dataType: "json",
});
})
我认为导致问题的原因是:
$(this).attr('id')
但我不知道为什么。我试图首先将$(this).attr('id')分配给变量,并将变量放在ajax调用中,但这没有帮助。 我该如何解决? 谢谢!
答案 0 :(得分:8)
这是一个语法错误。您不能将函数调用的返回值用作属性名称。
但是,初始化对象后,您可以在括号表示法中使用该返回值:
fields = {};
fields[$(this).attr('id')] = '1';
答案 1 :(得分:0)
使用{}语法声明对象时,只允许字符串(如{'foo':1})或裸字符串({foo:1})
你应该写这样的东西:
var fields = {};
fields[$(this).attr('id')] = 1;
答案 2 :(得分:0)
更改此行:
fields = { $(this).attr('id') : "1" };
到此:
fields = $(this).attr('id') || "1";
如果您打算使用默认值,那就是这样。
如果你想要一个物体,请使用:
fields[$(this).attr('id')] = "1";