Ошибка «отсутствует: после идентификатора свойства» при использовании Ajax-функции Jquery - PullRequest
3 голосов
/ 10 апреля 2011

В следующем коде я пытаюсь отправить пару ключ-значение и всегда получаю сообщение об ошибке:
"отсутствует: после идентификатора свойства"

$(".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 ]

8 голосов
/ 10 апреля 2011

Это синтаксическая ошибка.Вы не можете использовать возвращаемое значение вызова функции в качестве имени свойства.

Однако вы можете использовать это возвращаемое значение в скобках после инициализации объекта:

  fields = {};
  fields[$(this).attr('id')] = '1';
0 голосов
/ 10 апреля 2011

Измените эту строку:

fields = { $(this).attr('id') : "1" };

на это:

fields = $(this).attr('id') || "1";

Это если вы намеревались иметь что-то вроде значения по умолчаниюзначение.

Если вы хотите объект, используйте это:

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

0 голосов
/ 10 апреля 2011

При объявлении объекта с синтаксисом {} допускаются ТОЛЬКО строки (например, {'foo': 1}) или открытая строка ({foo: 1})

Вы должны написать что-то вроде этого:

var fields = {};
fields[$(this).attr('id')] = 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...