Given this sample markup (assuming a random number of elements between .outer and .inner:
-
Here's another option. Suppose you have the .outer o, this will select all inners under it:
o.find('.inner').not(o.find('.outer .inner'))
It should work identically to gnarf's answer, but a bit simpler.
First, it finds all inners under this outer.
Next, remove all inners that are descendants of other outers
Interactive working example: http://jsfiddle.net/Zb9gF/
Selector performance seems to be much better using this method as opposed to the .filter() as well: http://jsperf.com/selector-test-find-not