我可以创建一个包含多个对象的数组,然后在整个脚本中操作该数组吗?

时间:2011-10-09 23:16:01

标签: javascript jquery

我创建了一个jquery对象数组,我想在触发特定的click事件时隐藏它们。我可以将数组转换为单个对象或者我可以将方法附加到的对象,而不是为每个单击事件循环遍历同一数组的内容吗?

我现在有一个当前的小提琴:http://jsfiddle.net/hd5qa/13/

很抱歉,如果这听起来很模糊,我不确定如何最好地解释这一点。

凯尔

4 个答案:

答案 0 :(得分:4)

是。您可以创建一个空的jQuery对象,然后为每个元素调用.add

var all = $();
$.each(myArray, function(index, element) { all = all.add(element); });
// now you can use all to apply something to all of them
all.show();
all.hide();
// etc

查看更新后的演示on JSFiddle

答案 1 :(得分:2)

是的,有几种方法可以做到。您可以一次选择它们:

var colors = $('#blue, #red, #green, #black, ...');

您可以将各个集合合并为一个集合

var $blue = $('#blue');
var $red = $('#red');
var $green = $('#green');
var $black = $('#black');
var $purple = $('#purple');
var $orange = $('#orange');

var collection = $blue.add($red).add($green).add(.....

或者您可以为所有元素提供class="color"属性

var collection = $('.color');

答案 2 :(得分:2)

你可以用。撰写一个jQuery对象 .add() 方法。然后像正常一样调用组合对象的方法。

e.g。

var ALL=$('#blue').add('#red');
ALL.hide();

答案 3 :(得分:1)

为什么不给他们全班?

myArray.each(function() { $(this).addClass("myArrayClass"); });

然后你可以

$(".myArrayClass").hide();

您还可以使用类同时为所有点击按钮分配相同的onclick事件处理程序。