Okay, so jQuery 1.3.2 defines the visible filter like this: Sizzle.selectors.filters.visible = function(elem){ return elem.offsetWidth > 0 || elem.offsetHeight > 0; };
Now I've got a table of hidden (style="display: none") rows. The user will click something that will .show() a specific row, and the whole table -- along with a lot of other stuff -- will be displayed in a lovely thickbox. The problem is that MSIE 8 assigns offsetWidths and offsetHeights to the rows; even those with "display: none" active on them. In "compatibility mode," MSIE will set the offsetHeight to 0, but there will still be an offsetWidth. Firefox doesn't have this problem; Chrome doesn't have this problem. I'm not sure if MSIE got wildly confused by moving hidden rows into a thickbox. I know I've broken MSIE's rendering of other similar tables on the page, but I doubt those have anything to do with jQuery. I've gotten around it by using .addClass and .removeClass and filtering on that new class instead of :visible, but I'd rather know that :visible is working as intended in the long run. Cheers, JM (wanders off to lunch)