存储Jquery对象并在以后访问?

时间:2014-11-26 13:01:11

标签: javascript jquery

我正在尝试将Jquery对象存储到数组中,稍后访问以应用Jquery方法。

类似的东西:

var myArr = [];
myArr.push($('div#id1'));
myArr.push($('div#id2'));
$(myArr).show();

这不起作用

4 个答案:

答案 0 :(得分:1)

您尝试对传递给show的数组执行jQuery方法,而不是在每个对象上执行,尝试这样的事情:

$.each(myArr, function(k, elem) {
  $(elem).show();
})

答案 1 :(得分:0)

为什么要将项目存储在数组中?如果您只需要对多个项目执行操作,则只需执行以下任一操作:

$('selector1, selector2').operation();
$('selector1').add('selector2').operation();

答案 2 :(得分:0)

另一种方式,所有JQueried ^^:

var myElements = $('div#id1');
myElements = myElements.add('div#id2');

myElements.show();

要反转.add(),您可以使用.not:

myElements = myElements.not('.clazz');

myElements.hide();

答案 3 :(得分:0)

如果您坚持将jQuery对象存储在数组中,则需要将该数组映射到新的jQuery对象,然后才能在其上调用jQuery方法以影响存储的对象。

您可以使用jQuery的.map()

var myArr = [];
myArr.push($('div#id1'));
myArr.push($('div#id2'));

$(myArr).map(function(){ return this.toArray(); }).show();

JSFiddle