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);
})
答案 0 :(得分:1)
您可以使用window["myObj"]
,但它仅适用于全局变量。
答案 1 :(得分:1)
对象本身没有名称。如果你这样做:
var x = {};
然后将创建一个对象,变量x
将引用它。但是,对象的名称不是'x'
。这个对象是无名的。
您甚至可以声明另一个变量并将其引用设置为同一个对象:
var y = x;
现在x和y都包含对同一(无名)对象的引用。
您想要的是根据其标识符名称对变量的名称进行字符串化。这是不可能做到的。
<强>更新强>
$.each
回调的第一个参数包含属性的名称:
$.each(markers.event, function(i, v) {
google.maps.event.addListener(marker, i, v);
});
答案 2 :(得分:0)
你会很好地解释为什么你需要这个,所以我们可以帮助更好,但你可以做这样的事情:
var myVars = {
"myVar1": "Yaay",
"myVar2": "Yaay again"
};
for(var a in myVars){
alert("Variable name: "+a);
}