使用Jquery ajax函数时,错误'缺少:在属性id之后'

时间:2011-04-10 16:42:05

标签: javascript jquery ajax json

在下面的代码中,我正在尝试发送一个键值对,我总是得到错误:
“失踪:财产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调用中,但这没有帮助。 我该如何解决? 谢谢!

3 个答案:

答案 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";