Javascript 如何将方法应用于整个对象文字?
如何将方法应用于对象文字的所有属性 例如:Javascript 如何将方法应用于整个对象文字?,javascript,jquery,html,Javascript,Jquery,Html,如何将方法应用于对象文字的所有属性 例如: var ObjL = { x: $("someSelector > .x"), y: $("someSelector > .y"), otherx: $("someOtherSelector > .x"), othery: $("someOtherSelector > .y"), ... ... ... } // <---something like ObjL
var ObjL = {
x: $("someSelector > .x"),
y: $("someSelector > .y"),
otherx: $("someOtherSelector > .x"),
othery: $("someOtherSelector > .y"),
...
...
...
}
// <---something like ObjL.css("background-color","red") would go here
var ObjL={
x:$(“someSelector>.x”),
y:$(“someSelector>.y”),
otherx:$(“someOtherSelector>.x”),
othery:$(“someOtherSelector>.y”),
...
...
...
}
//这应该能奏效
$.each(ObjL, function() {
this.css("background-color","red");
})
这应该能奏效
$.each(ObjL, function() {
this.css("background-color","red");
})
如果我理解正确,您想对元素应用方法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.它在proto属性拥有或继承方面存在许多问题)
编辑:是的,您可以对数组使用$。每个循环。另一种方法是使用常规for计数器循环(for(initial;condition;increment){code}),因为在数组中使用for(in)循环会导致意外的结果。如果我理解正确,您想对元素应用方法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.它在proto属性拥有或继承方面存在许多问题)
编辑:是的,您可以对数组使用$。每个循环。另一种方法是使用常规for计数器循环(for(initial;condition;increment){code}),因为在数组中使用for(in)循环会导致意外结果。您可以在对象上迭代:
for (var key in ObjL) {
if (ObjL.hasOwnProperty(key)) {
ObjL[key].css( /* do your thang */ );
}
}
您可以在对象上迭代:
for (var key in ObjL) {
if (ObjL.hasOwnProperty(key)) {
ObjL[key].css( /* do your thang */ );
}
}
谷歌“javascript迭代对象属性”…在那里搜索时有点棘手。许多答案将引导您使用简单的for循环。这里有关于道具循环的良好实践的答案。@LuisMasuelli:plainfor in
loop.hmmm没有错,实际上你是对的,因为OP问题中的对象是文字对象。但是,当对象具有原型Google“javascript迭代对象属性”时,您必须小心……在那里搜索时有点棘手。许多答案将引导您使用简单的for循环。这里有关于道具循环的良好实践的答案。@LuisMasuelli:plainfor in
loop.hmmm没有错,实际上你是对的,因为OP问题中的对象是文字对象。但是当对象有原型时,你必须小心