编程语言
首页 > 编程语言> > javascript – IE9中的jQuery选择器’:not()’或方法’.not()’行为

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);

http://jsfiddle.net/QTG7S/

你写的东西应该像这样重写:

$('#id1 *').not('.c1').find("*").attr('disabled', true);

http://jsfiddle.net/QTG7S/2/

标签:javascript,jquery,internet-explorer-9
来源: https://codeday.me/bug/20190826/1724786.html