Bug Tracker

Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#5469 closed bug (worksforme)

Class selector doesn't work as expected when specifying top

Reported by: fforw Owned by:
Priority: major Milestone: 1.4
Component: core Version: 1.3.2
Keywords: Cc:
Blocked by: Blocking:

Description

var $tst =  $("#tst");
$(".foo span", $tst)

does not find the span on this HTML

<div id="tst" class="foo">
	<span>xxx</span>
</div>

I can understand and would expect that code not to regard a ".foo" outside of $tst. But shouldn't it regard the .foo on $tst ?

Change History (6)

comment:1 Changed 6 years ago by dmethvin

  • Resolution set to worksforme
  • Status changed from new to closed

$(y,x) is the same as $(x).find(y), so no. It's best to ask these questions on the forums rather than the bug tracker.

comment:2 Changed 6 years ago by fforw

  • Resolution worksforme deleted
  • Status changed from closed to reopened

It is *not* working. And it doesn't work with .find() either.

comment:3 Changed 6 years ago by fforw

If you think that is the best and least suprising solution this way and intended behaviour, at least document it as such.

comment:4 Changed 6 years ago by dmethvin

  • Resolution set to worksforme
  • Status changed from reopened to closed

It is *not* working. And it doesn't work with .find() either.

That's because you have misunderstood the .find() method, which finds *descendant* elements. Your #tst element is not a descendant of itself.

at least document it as such.

http://docs.jquery.com/Traversing/find#expr

"Searches for descendent elements that match the specified expression."

comment:5 Changed 6 years ago by fforw

The SPAN element I am searching is a descendent.

comment:6 Changed 6 years ago by fforw

I never expected the context itself to be found. I was always searching an descendent. I just expected the context to be regard when looking for the class.

Note: See TracTickets for help on using tickets.