Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将方法应用于整个对象文字?_Javascript_Jquery_Html - Fatal编程技术网

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:plain
for in
loop.hmmm没有错,实际上你是对的,因为OP问题中的对象是文字对象。但是,当对象具有原型Google“javascript迭代对象属性”时,您必须小心……在那里搜索时有点棘手。许多答案将引导您使用简单的for循环。这里有关于道具循环的良好实践的答案。@LuisMasuelli:plain
for in
loop.hmmm没有错,实际上你是对的,因为OP问题中的对象是文字对象。但是当对象有原型时,你必须小心