Opened 15 years ago
Closed 13 years ago
#1612 closed bug (fixed)
:contains selector doesn't work for Ajax responses in IE6
Reported by: | julienw | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 1.4 |
Component: | selector | Version: | 1.4a1 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
Hi,
I wanted to use the selector :contains for Ajax responses, and, while it works perfectly in Firefox, in doesn't work in IE. My guess is that Ajax responses don't have innerText set in IE (whereas in Firefox, they have textContent; I checked that).
The fix below works for me, for my specific case, but it is maybe too much intrusive, or not enough :
I'm changing this line :
a.innerText | ).indexOf(m[3])>=0", |
to :
a.innerText | a.firstChild.nodeValue | ).indexOf(m[3])>=0", |
I could setup a small testcase if you need it.
Change History (5)
comment:1 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:2 Changed 14 years ago by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Bug is back in 1.3.2. It seems since the refactoring to filters someone throw out that fix again.
So, line jquery-1.3.2.js#1944 right now is
elem.innerText | "").indexOf(match[3]) >= 0; |
but should be
elem.innerText | $(elem).text() | "").indexOf(match[3]) >= 0; |
(Tested with IE7.0 Win)
comment:3 Changed 14 years ago by
Um, next try:
return (elem.textContent || elem.innerText || $(elem).text() || "").indexOf(match[3]) >= 0;
(Well, preview showed it correctly, but pipes are wiki-tables. So, if it still got removed: between the elem-expressions there should be JavaScript-ORs)
comment:4 Changed 13 years ago by
Component: | core → selector |
---|---|
Milestone: | 1.2.1 → 1.4 |
Version: | 1.2 → 1.3.2 |
comment:5 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Version: | 1.3.2 → 1.4a1 |
Fixed in SVN rev [3300].