My experiences today with .filter() and .not() showed them to be extremely buggy in my case. For example, .not(".foo + .foo") would leave me with an empty set (though nothing should have been matching).
Is this because I was using them to select <tr> elements? Is there a known issue with .filter() and tables? If not, I could post an example if it breaking soon. I came up with a workaround, but it was annoying.