title: Why does iterating over jQuery objects with .each() not give me jQuery objects?
body: <p>The following works as expected:</p>
  
  <pre><code>$(".foo").first().text("hi!")
  </code></pre>
  
  <p>...because <a href="http://api.jquery.com/first/" rel="noreferrer"><code>first()</code></a> returns a jQuery object.</p>
  
  <p>However, if I want to work with the <a href="http://api.jquery.com/text/" rel="noreferrer"><code>text()</code></a> method for all matches, I need to do:</p>
  
  <pre><code>$(".foo").each( function(idx, obj) {
    $(obj).text("hi!")
    }
  )
  </code></pre>
  
  <p>...because <a href="http://api.jquery.com/each/" rel="noreferrer"><code>each()</code></a> gives you DOM objects.</p>
  
  <p>What is the design reason behind this baffling difference? How can I avoid having to build a jQuery object for each match?</p>