views:

131

answers:

4

Hi,

I'm trying to get an array of all elements with the class "sampleclass". For example, withing my document I have three divs:

<div class="aclass"></div>
<div class="sampleclass"></div>
<div class="anotheraclass"></div>
<div class="sampleclass"></div>

I want to get an array with all elements that are within the "sampleclass" using javascipt and/or jQuery.

Any ideas on how to do this?

+1  A: 
$( '.sampleclass' );

You can then iterate through the array with each.

Jacob Relkin
What Jacob said. Alternately, without jQuery, `document.getElementsByClassName('sampleclass');`
Matt Blaine
+1  A: 

......

$('.sampleclass').........

Further you can iterate over it using each like this:

$('.sampleclass').each(function(){
  // more code........
})

And finally, you can get each individual item like this too:

$('.sampleclass')[0]; // first
$('.sampleclass')[1]; // second
// and so on........
Sarfraz
-1 for just copy-paste the other 2 answers. Also, that last bit of code is terrible for performance -- CACHE the result.
Coronatus
@Coronatus: it is ridiculouse that you said copy-paste. My ansewr was posted before yours. This is very basic thing for me, so i don't need to copy-paste. Go to my blog to know my jquery skills just by going through my profile or even have a lookt at my SO answers in jquery tag. Consider your vote again....Thanks
Sarfraz
moderator should take notice of this please.
Sarfraz
lol (defensive, much?)
Coronatus
@Coronatus: What do you mean please, any consideration to what you did?
Sarfraz
Heehee: http://meta.stackoverflow.com/questions/44413/all-my-answers-being-downvoted-by-one-angry-user
Coronatus
@Coronatus:You said 'lol' which is not a better explanation to my correct answer being down voted. Still waiting for your explanation.
Sarfraz
@Coronatus: Remember, doing bad results in bad. Check the comments of developers at meta.
Sarfraz
A: 

Expanding Jacob Relkin' answer:

$('.sampleClass').each(function()
{
   // do something with it...
   $(this).css('background-color', 'green');
});
Coronatus
+3  A: 

This will get all the elements inside each element containing the sampleclass class:

var myArray = $('.sampleclass *');

* is called the All selector

EDIT: please note, in this example:

<div id="test">
   <table>
      <tr><td>TEST</td></tr>
   </table>
</div>

var myArray = $('#test *');

myArray contains all the sub-elements of the div: table, tr and td.

If you want all the top-level elements inside a given element, you can try:

var myArray = $('#test > *');

This combines the child selector with the aforementioned all selector.

Alex Bagnolini