jQuery: Why is it that `:first` only returns the first of the result array and not of the selector
<p><a href="http://jsfiddle.net/vol7ron/s5fS8/" rel="nofollow">http://jsfiddle.net/vol7ron/s5fS8/</a></p>

<ul>
<li><h3>HTML:</h3>

<pre><code>&lt;div class="container"&gt;
      &lt;span class="foo"&gt;a&lt;/span&gt;
      &lt;span class="bar"&gt;1a&lt;/span&gt;
      &lt;span class="bar"&gt;2a&lt;/span&gt;
&lt;/div&gt;
&lt;div class="container"&gt;
      &lt;span class="foo"&gt;b&lt;/span&gt;
      &lt;span class="bar"&gt;1b&lt;/span&gt;
      &lt;span class="bar"&gt;2b&lt;/span&gt;
&lt;/div&gt;
&lt;div class="container"&gt;
      &lt;span class="foo"&gt;c&lt;/span&gt;
      &lt;span class="bar"&gt;1c&lt;/span&gt;
      &lt;span class="bar"&gt;2c&lt;/span&gt;
&lt;/div&gt;

&lt;div class="title"&gt;Debug:&lt;/div&gt;
&lt;pre id="debug"&gt;&lt;/pre&gt;
</code></pre></li>
<li><h3>JS:</h3>

<pre><code>var debug      = $('#debug');
var containers = $('.container');
var foos       = containers.children('.foo');
var bars       = foos.siblings('.bar:first');


bars.each(function(){
    debug.append($(this).text() + '\n');
});
</code></pre></li>
</ul>

<p>What happens is the first <code>bar</code> is returned, whereas from an OOP POV, you'd think the first bar from each container would be returned.</p>

<p>As I left in a comment, I'm hung on why <code>:first</code> is applied to the result set, rather than the search set.  </p>

<hr>

<p><em>I thought the logic was: loop through the array of foos, find all the siblings that are bars, but only return the first one, add it to the array result stack, continue on to the next foo.</em>  </p>

<p><em>Instead, it's: loop through array of foos, find all siblings that are bars, add them to the result stack, select the first one.</em></p>

<p>I think it should work more like <code>find()</code> where: </p>

<ul>
<li><code>containers.find('.bar:first')</code> returns the result I'm looking for</li>
<li><code>containers.find('.bar').first(':first')</code> returns the result I'm currently getting (the OOP makes sense)</li>
</ul>
