javascript – IE9中的jQuery选择器’:not()’或方法’.not()’行为
作者:互联网
以下代码片段使用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中(至少对于上面的版本而言).
更多信息:How should disabled ‘div’ act?
解决方法:
请尝试使用此选择器:
$('#id1 :not(.c1) input').attr('disabled', true);
你写的东西应该像这样重写:
$('#id1 *').not('.c1').find("*").attr('disabled', true);
标签:javascript,jquery,internet-explorer-9 来源: https://codeday.me/bug/20190826/1724786.html