É fácil encontrar um documento dizendo que o IE 7 e o IE 8 suportam o seletor de atributos, desde que a declaração DOCTYPE seja apresentada.
Mas não consigo encontrar nenhum documento mencionando isso: Quando o atributo muda, o IE pode não reagir ou pode não reagir de forma instantânea.
Veja este jsfiddle: http://jsfiddle.net/AYPQ4/1/
No Firefox 17 e Chrome 23, os botões ‘b’ e ‘c’ mudam de cor instantaneamente.
Mas no IE 8, a cor não muda até você clicar em ‘atualizar’.
Parece que o evento de mudança de atributo não aciona o refluxo do IE 8 e o efeito é adiado até o próximo refluxo. Em outras palavras, se o IE 8 for considerado um navegador de destino, NÃO use o seletor de atributos para alterar os estilos dinamicamente .
Não sei qual é o comportamento de outras versões do IE, ou se esse comportamento é descrito em algum outro lugar. Eu só quero reclamar … compartilhar isso um pouco. Espero que isso ajude alguém.
Ah, esqueci de mencionar: uma solução simples é $ (el) .hide (). Show () para forçar o IE a refazer o fluxo.