Bug Tracker

Opened 6 years ago

Closed 5 years ago

#10074 closed bug (fixed)

Chaining two [] selector with :first not working

Reported by: ldng Owned by:
Priority: low Milestone: 1.8
Component: selector Version: 1.6.1
Keywords: Cc:
Blocked by: Blocking:



not sure it's a real bug but I was kinda expeting this to work : $('tr[id="foo"][style="display:none"]:first')

That would be selecting the first tr which name start with foo and has display style set to none.

Change History (6)

comment:1 Changed 6 years ago by ldng

Happens both in Firefox 5 and Chrome 13 : http://jsfiddle.net/d4QFg/

Another doubt is the list obtained with $('tr[id="foo"][style="display:none"]') sorted. I'm not sure that's always the case, hence the interest in a working :first selector chaining.

comment:2 Changed 6 years ago by rwaldron

  • Component changed from unfiled to selector
  • Milestone changed from None to 1.6.3
  • Priority changed from undecided to low

comment:3 Changed 6 years ago by rwaldron

Also, http://api.jquery.com/first-selector/ has information regarding the performance losses you suffer with the :first selector.

comment:4 Changed 6 years ago by dmethvin

  • Status changed from new to open

The :first pushes Sizzle into the JavaScript code path rather than querySelectorAll. The JS path prefers the elem.style *property* (which is a CSSStyleDeclaration object) over the string style *attribute* of the element.

comment:5 Changed 6 years ago by dmethvin

  • Milestone 1.6.3 deleted

comment:6 Changed 5 years ago by timmywil

  • Milestone set to 1.8
  • Resolution set to fixed
  • Status changed from open to closed

This started working when jQuery.attr was plugged into sizzle, but now works in an independent Sizzle.

Note: See TracTickets for help on using tickets.