错误'缺少:属性 id 之后'使用Jquery ajax函数时
在下面的代码中,我尝试发送键值对,但总是收到错误:
“missing: after property 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 调用中,但这没有帮助。 我该如何解决这个问题?
谢谢你!
In the following code, I'm trying to send a key-value pair and I always get the error:
" missing: after property id "
$(".general").change(function () {
fields = { $(this).attr('id') : "1" };
$.ajax({
type: "POST",
url: "ajax/update_general.php",
data: { fields: fields },
dataType: "json",
});
})
I've figured that what causes the problem is:
$(this).attr('id')
But I have no clue why. I've tried to first assign $(this).attr('id') to a variable, and put the variable in the ajax call, but that didn't help.
How can I fix that?
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是一个语法错误。您不能使用函数调用的返回值作为属性名称。
但是,您可以在初始化对象之后在方括号表示法中使用该返回值:
It's a syntax error. You can't use the return value of a function call as a property name.
You can, however, use that return value in bracket notation after initializing the object:
使用 {} 语法声明对象时,仅允许字符串(如 {'foo':1})或裸字符串({foo:1}),
您应该编写如下内容:
When declaring object with {} syntax, ONLY strings (like {'foo':1}) or bare string is allowed ({foo:1})
You should write something like this:
将此行:
fields = { $(this).attr('id') : "1" };
更改为:
fields = $(this).attr('id') || "1";
如果你想要一个类似默认值的东西。
如果您想要一个对象,请使用:
fields[$(this).attr('id')] = "1";
Change this line:
fields = { $(this).attr('id') : "1" };
to this:
fields = $(this).attr('id') || "1";
That's if you intended to have something like a default value.
If you want an object, use this:
fields[$(this).attr('id')] = "1";