#6472 closed bug (fixed)
$.find with attribute contains selector misses results
Reported by: | cmdrkeem | Owned by: | cmdrkeem |
---|---|---|---|
Priority: | low | Milestone: | |
Component: | selector | Version: | 1.4.4 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
See the attached html file for an example.
In the case of a table <table id="table1">
<tr><td>1</td></tr> <tr style="display: table-row;"><td>2</td></tr> <tr><td>3</td></tr>
</table>
I would expect the following 2 alert boxes to contain the same count, 1.
alert($("#table1 tr[style*='table-row']").length); alert($("#table1").find("tr[style*='table-row']").length);
Attachments (2)
Change History (7)
Changed 13 years ago by
Attachment: | jquery_error.html added |
---|
comment:1 Changed 13 years ago by
This is because of the attribute-vs-property issue, compounded by an IE bug:
http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/GetAttributeImplementation.html
It should be possible to match against the domelement.style.cssText property but I agree it's a problem.
comment:2 Changed 13 years ago by
Here is another test case :
$('#test *[myattr]').length ) == 2
OK
$('#test').find('*[myattr]').length == 1
WRONG
$('#test').find('*[myattr=""]').length == 1
OK
If you add another
<div myattr="">third</div>
then
$('#test').find('*[myattr=""]').length == 2
STILL OK
comment:3 Changed 12 years ago by
Owner: | set to cmdrkeem |
---|---|
Priority: | → undecided |
Status: | new → pending |
Please provide a reduced jsFiddle test case, thanks!
Additionally, test against the jQuery 0 GIT version to ensure the issue still exists.
comment:4 Changed 12 years ago by
Milestone: | 1.4.3 → 1.5 |
---|---|
Priority: | undecided → low |
Status: | pending → open |
Version: | 1.4.2 → 1.4.4 |
test case works fine in Opera, Chrome and FF (both alerts say 1). In IE6 (IE7/8 ?) both alerts say 0.
comment:5 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | open → closed |
Using style is an awful example, given cross browser support. Here's the selector and .find using a regular attr: http://jsfiddle.net/danheberden/E7QH9/1/
Html file demonstrating the error