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

发布于 2024-10-31 07:58:11 字数 455 浏览 1 评论 0原文

在下面的代码中,我尝试发送键值对,但总是收到错误:
“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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

萌面超妹 2024-11-07 07:58:11

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

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

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

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:

  fields = {};
  fields[$(this).attr('id')] = '1';
水溶 2024-11-07 07:58:11

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

您应该编写如下内容:

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

When declaring object with {} syntax, ONLY strings (like {'foo':1}) or bare string is allowed ({foo:1})

You should write something like this:

var fields = {};
fields[$(this).attr('id')] = 1;
如此安好 2024-11-07 07:58:11

将此行:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文