Bug Tracker

Opened 12 years ago

Closed 12 years ago

Last modified 11 years ago

#9261 closed bug (fixed)

Has Attribute not working in filter/children/siblings

Reported by: ari@… Owned by: Timmy Willison
Priority: blocker Milestone: 1.7
Component: selector Version: 1.6
Keywords: Cc:
Blocked by: #7128 Blocking:

Description

When attempting to match empty attributes in filter() and equivalent functions, the Has Attribute selector fails in all browsers unless an equals sign is used: [tag] fails [tag=] works

http://jsfiddle.net/peRvp/2/

{{{<table>

<tr>

<td></td> <td data-info=""></td> <td></td> <td class='test'></td> <td></td> <td></td>

</tr>

</table>

console.log($('td.test').siblings('td[data-info]')); Why does this not work when console.log($('td.test').parent().find('td[data-info]')); This works console.log($('td.test').siblings('td[data-info=]')); And this works

console.log($('td.test').siblings().filter('td[data-info]')); This doesn't work either. console.log($('td.test').parent().children('td[data-info]')); Neither does this.}}}

Change History (8)

comment:1 Changed 12 years ago by Timmy Willison

Blocked by: 7128 added
Component: unfiledselector
Milestone: 1.next1.7
Priority: undecidedblocker
Status: newopen

comment:2 Changed 12 years ago by Timmy Willison

let's handle this has attribute stuff in 1.7.

comment:3 Changed 12 years ago by anonymous

Just to be sure we're all clear here... The has attribute selector *will* select elements with empty attributes when doing jQuery('[emptyAttribute]'). It is only filter and friends that fail in this regard. The inconsistency is as confusing as anything. Considering all the attr() work in 1.6, it would be nice to not have to wait for 1.7 for a fix to an attribute-related bug.

comment:4 Changed 12 years ago by Timmy Willison

We have seen problems with straight selections. It's not specific to filter or related methods. This needs to wait until 1.7 as Sizzle will start using jQuery's attribute/property handling for consistent selectors across the board.

comment:5 Changed 12 years ago by Timmy Willison

#9424 is a duplicate of this ticket.

comment:6 Changed 12 years ago by Timmy Willison

#9594 is a duplicate of this ticket.

comment:7 Changed 12 years ago by Timmy Willison

Owner: set to Timmy Willison
Status: openassigned

comment:8 Changed 12 years ago by Timmy Willison

Resolution: fixed
Status: assignedclosed

Override Sizzle attribute retrieval with jQuery.attr. Fixes #5637, #7128, #9261, #9570, #10178.

Bug fixed on the side: $(window).is('a') was throwing an exception. Fixes #10178.

Changeset: 92405d4f5ffe9ec1f26f280303783014948438c5

Note: See TracTickets for help on using tickets.