如何将方法应用于整个对象文字?

时间:2014-04-24 19:10:18

标签: javascript jquery html

如何将方法应用于对象文字的所有属性?

例如:

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()

你能用数组吗?

3 个答案:

答案 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 */ );
  }
}