以下代码段已使用 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 中获得“禁用”属性时,所有子元素都被禁用。然而,这在 Chrome 和 FF 中不会发生(至少对于上述版本)。
更多信息在这里: 禁用的“div”应该如何行动?