Still looking for an answer.
Changing or reassigning to the filter\'s innerHTML
successfully redraws the element, but breaks my script, so that\'s out.
The problem, I've discovered is that IE 6/7 doesn't register the class name changes with elm.setAttribute('class','x')
until the UI is redrawn.
The solution is to use the form elm.className = 'x'
**This problem was also noticeable from moving from IE9 quirks to standards mode. The solution was the same.