Javascript 错误';缺少:在属性id'之后;使用jqueryajax函数时

Javascript 错误';缺少:在属性id'之后;使用jqueryajax函数时,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,在下面的代码中,我试图发送一个键值对,但总是得到错误: “缺少:在属性id之后” 我认为造成问题的原因是: $(this).attr('id') 但我不知道为什么。我试图首先将$(this.attr('id')分配给一个变量,并将该变量放入ajax调用中,但这没有帮助。 我怎样才能解决这个问题? 谢谢大家! 这是一个语法错误。不能将函数调用的返回值用作属性名 但是,您可以在初始化对象后使用括号表示法中的返回值: fields = {}; fields[$(this).attr('id'

在下面的代码中,我试图发送一个键值对,但总是得到错误:
“缺少:在属性id之后”

我认为造成问题的原因是:

$(this).attr('id')
但我不知道为什么。我试图首先将$(this.attr('id')分配给一个变量,并将该变量放入ajax调用中,但这没有帮助。 我怎样才能解决这个问题?

谢谢大家!

这是一个语法错误。不能将函数调用的返回值用作属性名

但是,您可以在初始化对象后使用括号表示法中的返回值:

  fields = {};
  fields[$(this).attr('id')] = '1';

使用{}语法声明对象时,只允许使用字符串(如{foo':1})或裸字符串({foo:1})

你应该这样写:

var fields = {};
fields[$(this).attr('id')] = 1;
更改此行:

fields={$(this.attr('id'):“1”}

为此:

fields=$(this.attr('id')||“1”

如果你想要一个默认值

如果需要对象,请使用以下命令:


字段[$(this.attr('id')]=“1”

+1@Israel:也要注意
数据类型之后的悬空逗号:“JSON”
。IE7和更早的版本认为这是一个语法错误,可能还有其他实现也会这样做,因为它在第三版规范中有点模糊(第五版清除了它;它是有效的)。细节:
var fields = {};
fields[$(this).attr('id')] = 1;