имя объекта в виде строки - PullRequest
0 голосов
/ 14 марта 2011

Есть ли способ в jQuery получить имя объекта в виде строки?

т.е. если у меня есть

markers.events = {
    click: function(event){},
    drag: function(event){}
};

Я хотел бы получить строку "click" или "drag"

Возможно ли это внутри $.each(myObj, function(){})?

Мне нужно сделать следующее (надеюсь) на объекте, указанном выше:

$.each(markers.events, function(i, event){
    google.maps.event.addListener(marker, "click/drag", event);
})

Ответы [ 3 ]

1 голос
/ 14 марта 2011

Вы можете использовать window["myObj"], хотя он работает только с глобальными переменными.

1 голос
/ 14 марта 2011

Сам объект не имеет имени.Если вы сделаете это:

var x = {};

, тогда объект будет создан, а переменная x будет иметь ссылку на него.Тем не менее, имя объекта не является 'x'.Объект безымянный.

Вы даже можете объявить другую переменную и установить ссылку на этот же объект:

var y = x;

Теперь и x, и y содержат ссылку на один и тот же (безымянный) объект.1012 * То, что вы хотите - это указать имя переменной на основе ее имени идентификатора.Это невозможно сделать.


Обновление:

Первый аргумент обратного вызова $.each содержит имя свойства:

$.each(markers.event, function(i, v) {
    google.maps.event.addListener(marker, i, v);
});

Демонстрационная версия: http://jsfiddle.net/simevidas/SKZKv/

0 голосов
/ 14 марта 2011

Вы бы хорошо объяснили, зачем вам это нужно, чтобы мы могли лучше помочь, но вы можете сделать что-то вроде этого:

var myVars = {
    "myVar1": "Yaay",
    "myVar2": "Yaay again"
};

for(var a in myVars){
    alert("Variable name: "+a);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...