我有一堆带有init方法的jQuery对象,所以现在我有类似这样的东西
$.myobject1.init(somevar);
$.myobject2.init(somevar);
$.myobject3.init(somevar);
$.myobject4.init(somevar);
$.myobject5.init(somevar); // somevar is the same var in all the calls
但我正在寻找一种方法来简单地使用这个代码,就像这样
var objectName = "myobject1"; // or any other object name
$. objectName .init(somevar);
感谢您的帮助! : - )
答案 0 :(得分:1)
因为它们已经是jQuery对象,所以你不需要$。你可以像这样使用.add():
var object = myobject1.add(myobject2).add(myobject3).add(myobject4).add(myobject5);
object.init(somvar)
答案 1 :(得分:1)
只需使用
$[objectName].init(somevar);
答案 2 :(得分:0)
在javascript中,所有对象都是地图。这真的很奇怪,但这意味着你可以做到这一点:
var p = "mypropertyname";
var obj = {};
obj[p] = somevalue;
然后,如果你这样做:
console.log(obj.mypropertyname)
你会得到:
> somevalue
答案 3 :(得分:0)
如果您的意思是想要遍历对象的名称,那么您应该知道不能将字符串与点表示法结合起来:
var someObj = {
subObj: {
a: 5
}
};
someObj.subObj.a === 5; // true
someObj."subObj".a === 5; // throws error
但您可以使用带方括号表示法的字符串:
someObj["subObj"].a === 5; // true
var propName = "subObj";
someObj[propName].a === 5; // true
因此,您可以使用它来循环访问具有for循环的对象名称,或者您可以使用其他答案中建议的jQuery方法。