如何将方法应用于对象文字的所有属性?
例如:
var ObjL = {
x: $("someSelector > .x"),
y: $("someSelector > .y"),
otherx: $("someOtherSelector > .x"),
othery: $("someOtherSelector > .y"),
...
...
...
}
// <---something like ObjL.css("background-color","red") would go here
您是否只使用ObjL.someMethod()
?
你能用数组吗?
答案 0 :(得分:2)
如果我理解正确,您想将method
aMethod
应用于元素吗?最好的解决方案IMHO是一个foreach循环:
$.each($obj, function(prop, value) {
//call a method here, being the same on value or this.
value.css(blablabla, blablabla);
});
(故意我没有使用for
循环,因为1.你使用jquery并且它更短,而且2.它有很多关于拥有或继承原型的问题属性)。
编辑:是的,您也可以为数组使用$ .each循环。另一种方法是使用常规的for-counter循环(for(initial; condition; increment){code}),因为在数组中使用for(in)循环会导致意外的结果。
答案 1 :(得分:1)
这应该可以解决问题
$.each(ObjL, function() {
this.css("background-color","red");
})
答案 2 :(得分:1)
您可以迭代对象:
for (var key in ObjL) {
if (ObjL.hasOwnProperty(key)) {
ObjL[key].css( /* do your thang */ );
}
}