Можете ли вы использовать значение переменной для указания имени объекта jquery? - PullRequest
3 голосов
/ 03 октября 2011

У меня есть:

if (!myObj.login_id) { 
    alert("The object for login_id does not exist.");
} else {
    alert("The object for login_id DOES exist. The value of the object is: " + myObj.login_id);
}

Это работает правильно.Объект и его значение уже определены.Тем не менее, у меня есть несколько объектов, которые названы в честь их идентификатора attr.Итак, я пытаюсь сделать это (скажем, например, это событие щелчка:

objtitle = $(this).attr('id'); // this is "login_id"

if (!myObj.objtitle) {
    alert("The object for "+objtitle+" does not exist.");   
} else {
    alert("The object for "+objtitle+" DOES exist. The value of the object is: " + myObj.objtitle);
}

Почему оно перестает работать, когда я использую переменную для имени объекта?

Ответы [ 2 ]

10 голосов
/ 03 октября 2011

Используйте квадратные скобки.

myObj[objtitle]
4 голосов
/ 03 октября 2011

Существует два способа доступа к свойствам объекта: синтаксис точки и синтаксис в квадратных скобках.Они называются членами-операторами .Таким образом, следующие два эквивалента:

obj.foo
obj['foo']

Синтаксис точки (первый) - это буквальное имя.obj.objtitle поэтому пытается найти свойство с именем objtitle.Если у вас есть переменная, содержащая нужное имя свойства, вы должны использовать синтаксис в квадратных скобках.

myObj[objtitle]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...