次のスニペットは、chrome 23、firefox 3.5、およびIE9でテストされました。
<!DOCTYPE html>
<html><head>
<title>test</title>
<script src="jquery-1.7.2.min.js"></script>
<script>
$(function() {
$('#id1 *').not('.c1 *').attr('disabled', true);
});
</script>
</head><body>
<div id="id1">
<div class="c1">
<input type=radio>td1</input>
</div>
<div class="c2">
<input type=radio>td2</input>
</div>
</div>
</body></html>
td2のみを無効にする必要がありますが、通常の容疑者(IE9)はtd1とtd2を無効にします。
この問題をどのように回避しますか?
回答
実際、問題はjqueryセレクターが原因ではなく、IE9で要素が属性「disabled」になるとすべてのサブ要素が無効になるという事実が原因でした。ただし、これはChromeとFFでは発生しません(少なくとも上記のバージョンでは)。
詳細はこちら: 無効にした「div」はどのように機能する必要がありますか?