tadam logo
Did you find an error in the text?
Select this with mouse and press
Ctrl + Enter
Xhtml.co.il Check Spelling
Orphus system

.each( function(index, Element) )

Returns: jQuery
Description: Iterate over a jQuery object, executing a function for each matched element.

Arguments

.each( function(index, Element) )

version added: 1.0
function(index, Element)
A function to execute for each matched element.

The .each() method is designed to make DOM looping constructs concise and less error-prone. When called it iterates over the DOM elements that are part of the jQuery object. Each time the callback runs, it is passed the current loop iteration, beginning from 0. More importantly, the callback is fired in the context of the current DOM element, so the keyword this refers to the element.

Suppose we had a simple unordered list on the page:

<ul>
    <li>foo</li>
    <li>bar</li>
</ul>
We can select the list items and iterate across them:
$('li').each(function(index) {
    alert(index + ': ' + $(this).text());
  });

A message is thus alerted for each item in the list:

0: foo
1: bar

We can stop the loop from within the callback function by returning false.

Examples

Example 1

Iterates over three divs and sets their color property.
$(document.body).click(function () {
      $("div").each(function (i) {
        if (this.style.color != "blue") {
          this.style.color = "blue";
        } else {
          this.style.color = "";
        }
      });
    });
The output of the code above will be:
Example 1 - Full source:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
  <style>
  div { color:red; text-align:center; cursor:pointer; 
        font-weight:bolder; width:300px; }
  </style>

  <script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" language="javascript">

$(document).ready(function(){
$(document.body).click(function () {
      $("div").each(function (i) {
        if (this.style.color != "blue") {
          this.style.color = "blue";
        } else {
          this.style.color = "";
        }
      });
    });
});
</script>

</head>
<body>

	<div>Click here</div>

  <div>to iterate through</div>
  <div>these divs.</div>

</body>
</html>

Example 2

If you want to have the jQuery object instead of the regular DOM element, use the $(this) function, for example:
$("span").click(function () {
      $("li").each(function(){
        $(this).toggleClass("example");
      });
    });
The output of the code above will be:
Example 2 - Full source:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <style>
  ul { font-size:18px; margin:0; }
  span { color:blue; text-decoration:underline; cursor:pointer; }
  .example { font-style:italic; }
  </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" language="javascript">

$(document).ready(function(){
$("span").click(function () {
      $("li").each(function(){
        $(this).toggleClass("example");
      });
    });
});
</script>



</head>
<body>
	To do list: <span>(click here to change)</span>
  <ul>
    <li>Eat</li>

    <li>Sleep</li>

    <li>Be merry</li>
  </ul>
</body>
</html>

Example 3

You can use 'return' to break out of each() loops early.
    $("button").click(function () {
      $("div").each(function (index, domEle) {
        // domEle == this
        $(domEle).css("backgroundColor", "yellow"); 
        if ($(this).is("#stop")) {
          $("span").text("Stopped at div index #" + index);
          return false;
        }
      });
    });
The output of the code above will be:
Example 3 - Full source:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <style>
  div { width:40px; height:40px; margin:5px; float:left;
        border:2px blue solid; text-align:center; }
  span { color:red; }
  </style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" language="javascript">

$(document).ready(function(){
    $("button").click(function () {
      $("div").each(function (index, domEle) {
        // domEle == this
        $(domEle).css("backgroundColor", "yellow"); 
        if ($(this).is("#stop")) {
          $("span").text("Stopped at div index #" + index);
          return false;
        }
      });
    });
});
</script>

</head>
<body>
   <button>Change colors</button> 
  <span></span>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div id="stop">Stop here</div>
  <div></div>
  <div></div>
  <div></div>
</body>
</html>
Was this information helpful?
   

Comments