我有4个jQuery对象(即通过$("ObjectID")
构建的东西),我想以优雅的方式对所有这些对象执行相同的操作。我原以为这样的东西会起作用,但似乎不是:
$([obj1, obj2, obj3, obj4]).change(function() { otherObj.show(); });
$([obj1, obj2, obj3, obj4]).attr("disabled", "disabled");
这有一个很好的语法吗?这似乎是一个有点盲目的疏忽。目前我见过的最好的是
$([obj1, obj2, obj3, obj4]).each(
function() { this.change(function() { otherObj.show(); }));
答案 0 :(得分:5)
你的意思是你有:
var obj1 = $("...");
var obj2 = $("...");
var obj3 = $("...");
var obj4 = $("...");
如果是这样,您可以将它们变成一组:
var complete = obj1.add(obj2).add(obj3).add(obj4);
然后只使用最终设置:
complete.change(function() {
otherObj.show();
}).attr("disabled", true);
答案 1 :(得分:2)
尝试在创建对象并执行
时将类附加到对象$(".class")
.change(function(){otherObj.show();})
.attr("disabled","disabled");
答案 2 :(得分:2)
这适用于ID:
$("#obj1,#obj2,#obj3,#obj4")
它也适用于任何选择器。您可以在逗号分隔列表中组合任何内容。
答案 3 :(得分:0)
使用each命令肯定是解决它的一种方法,但还有其他方法。
你可以peel away the jQuery object to get an array,在数组上执行你需要做的任何事情,然后将它包装回jQuery对象。
还有一些plugins with array methods and enumurables允许你操作数组和jQuery对象。