Bug Tracker

Opened 12 years ago

Closed 11 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:

Description

Hi,

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 12 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 12 years ago by Rick Waldron

Component: unfiledselector
Milestone: None1.6.3
Priority: undecidedlow

comment:3 Changed 12 years ago by Rick Waldron

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

comment:4 Changed 12 years ago by dmethvin

Status: newopen

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 12 years ago by dmethvin

Milestone: 1.6.3

comment:6 Changed 11 years ago by Timmy Willison

Milestone: 1.8
Resolution: fixed
Status: openclosed

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.