Bug Tracker

Opened 12 years ago

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

contains: "(a.textContent
a.innerText).indexOf(m[3])>=0",

to :

contains: "(a.textContent
a.innerTexta.firstChild.nodeValue).indexOf(m[3])>=0",

I could setup a small testcase if you need it.

Change History (5)

comment:1 Changed 12 years ago by john

Resolution: fixed
Status: newclosed

Fixed in SVN rev [3300].

comment:2 Changed 11 years ago by till

Resolution: fixed
Status: closedreopened

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

return (elem.textContent
elem.innerText "").indexOf(match[3]) >= 0;

but should be

return (elem.textContent
elem.innerText $(elem).text() "").indexOf(match[3]) >= 0;

(Tested with IE7.0 Win)

comment:3 Changed 11 years ago by till

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 10 years ago by john

Component: coreselector
Milestone: 1.2.11.4
Version: 1.21.3.2

comment:5 Changed 10 years ago by john

Resolution: fixed
Status: reopenedclosed
Version: 1.3.21.4a1
Note: See TracTickets for help on using tickets.