如何循环遍历jquery对象数组和.hide()中的每一个

时间:2011-10-09 22:04:11

标签: javascript jquery

我正在尝试遍历我创建的jquery对象数组,这些对象在单击时是隐藏的。现在我不知道我在哪里出错了,并且想知道是否有人能解释我需要做些什么才能使它发挥作用?

我在这里创造了一个小提琴http://jsfiddle.net/hd5qa/3/

非常感谢所有建议

凯尔

5 个答案:

答案 0 :(得分:6)

小提琴的问题如下:

1)你没有包含jQuery库。

2)您没有正确关闭each循环(缺少括号)。

3)您错过了“myButton”中的id选择器#

这是一个updated, working fiddle

但请注意,您可以这样做:

$("#blue, #red, #green, #black, #purple, #orange").hide();

或者更好的是,将所有这些放在包含父元素中,只需隐藏它,或使用$("#parent div").hide();

您可以将该选择的结果存储在单个变量中,而不是当前存储的6中,因为jQuery方法倾向于对匹配集中的每个元素进行操作而不需要循环。

答案 1 :(得分:1)

你有理由想通过一系列对象来做这件事吗?

您可以通过添加以下选择器来简化这一切:

$('#blue, #red, #green, #black, #purple, #orange').hide();

答案 2 :(得分:0)

$(myArray).each(function(index, element){
    element.hide();
});
你可能想尝试这样的事情!

var myArray = [$blue, $red, $green, $black, $purple, $orange];

$('#myButton').click(function() {
    $(myArray).each(function(index, element) {
        $(element).hide();
    });

 });

你可以看到它在这里运行: http://jsfiddle.net/hd5qa/3/

答案 3 :(得分:0)

我更喜欢这种方式:

var elements = $("div");
var numOfElements = elemenets.length;
for(var i=0; i<numOfElements; i++) {
    var element = elements.eq(i);
    element.hide();
}

答案 4 :(得分:0)

有三个问题:

  • 使用MooTools库而不是jQuery运行代码。
  • 您忘记了按钮选择器中的#
  • 您在);循环结束时忘记了$.each

http://jsfiddle.net/Guffa/hd5qa/5/