Why does iterating over jQuery objects with .each() not give me jQuery objects?
<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="nofollow"><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="nofollow"><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="nofollow"><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>
