开发者

how to loop through an array of jquery objects and .hide() each of them

开发者 https://www.devze.com 2023-04-12 00:51 出处:网络
I am trying to loop through an array of jquery objects I have created that are hidden when clicked. Right now Im not sure where I am going wrong with this and was wondering if anyone could explain wha

I am trying to loop through an array of jquery objects I have created that are hidden when clicked. Right now Im not sure where I am going wrong with this and was wondering if anyone could explain what I need to do to make it work?

I have created a fiddle here http://jsfiddl开发者_开发技巧e.net/hd5qa/3/

All advice much appreciated

Kyle


The problems with your fiddle were as follows:

1) You hadn't included the jQuery library.

2) You hadn't closed the each loop correctly (missing parenthesis).

3) You were missing the id selector # from "myButton".

Here's an updated, working fiddle.

Note, however, that you could simply do this:

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

Or better, put all of those in a containing parent element, and simply hide that, or use $("#parent div").hide();.

You can store the result of that selection in a single variable, rather than the 6 you currently have, as jQuery methods tend to operate on each element in the matched set without the need for a loop.


is there a reason you want to do this trough an array of objects?

you could simplify it all by adding your selectors like this:

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


There are three problems:

  • You run the code with the MooTools library instead of jQuery.
  • You forgot # in the selector for the button.
  • You forgot a ); at the end of the $.each loop.

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


$(myArray).each(function(index, element){
    element.hide();
});

you may wanna try something like this!

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

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

 });

You can see it running here: http://jsfiddle.net/hd5qa/3/


I prefer this way:

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号