使用jQuery对象访问Array的方法

时间:2011-05-07 10:55:30

标签: javascript jquery arrays dom

我有一个像下面这样的数组

[jQuery('div#example1'), jQuery('div#example2'), jQuery('div#example3'), jQuery('div#etcetera')]

目标

elementArray = [jQuery('div#example1'), jQuery('div#example2'), jQuery('div#example3'), jQuery('div#etcetera')];

$(elementArray).remove();

//or

$(elementArray).css('border', '1px solid red');

我希望他们都能得到同样的治疗,有一些功能。我知道访问元素的唯一方法是循环遍历数组。

有人可以用更有效的方式帮助我解决这个问题吗?

4 个答案:

答案 0 :(得分:1)

你走了:

$.each(elementArray, function(i, v) {
    v.remove();
});

使用$.each时,该函数针对每个数组元素运行(由v引用)。

现场演示: http://jsfiddle.net/XyRZE/


更新:您可以使用map将数组中的每个jQuery对象替换为其中包含的DOM元素对象。

$(elementArray).map(function(i, v) { return v[0]; }).remove();

现场演示: http://jsfiddle.net/XyRZE/1/

答案 1 :(得分:0)

也许你可以将所有项目一起选择到一个jQuery数组

var myArray = $("div#wallItem303.wallItem, div#wallItem103.wallItem, div#wallItem323.wallItem");
myArray.css('border', '1px solid red');

答案 2 :(得分:0)

您可以在jquery选择器中定位多个元素。

请参阅jQuery multiple selector api

jQuery('#wallItem303, #wallItem303').remove();

N.B如果你有一个id,不要在选择器中用nodeName作为前缀。

答案 3 :(得分:0)

这是解决方案。 你的方式很好,但是如果你想使用一个函数,你可以在这里:

$(elementArray).each(function(){
   $(this).css('border', '1px solid red');
   //Do whatever you want in this function
});

希望这会有所帮助。干杯