为什么不对.not()有任何影响?

时间:2017-08-08 04:40:47

标签: javascript jquery

这是我的代码:



$('body').not('.specific_element').css('opacity','.3');

body{
  border: 1px solid;
}
.specific_element{
  border: 1px solid red;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>There are some texts</p>
<div class="specific_element">
  sth
</div>
<p>whatever</p>
&#13;
&#13;
&#13;

我想要做的就是将具有红色边框的元素的不透明度保持为1。我的意思是我想在除了特定元素之外的所有内容上应用opacity: .3。我怎么能这样做?

4 个答案:

答案 0 :(得分:3)

  1. 在容器的子项上应用不透明度,但特定元素
  2. 除外

    &#13;
    &#13;
    $('body').children().not('.specific_element').css('opacity','.3');
    &#13;
    body{
      border: 1px solid;
    }
    
    .specific_element{
      border: 1px solid red;
    }
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <p>There are some texts</p>
    <div class="specific_element">
      sth
    </div>
    <p>whatever</p>
    &#13;
    &#13;
    &#13;

答案 1 :(得分:2)

// Select all elements inside body except '.specific_element'
$('body *').not('.specific_element').css('opacity','.3');

答案 2 :(得分:1)

$('*:not(*[class*="specific_element"])').css('opacity','.3');
  

一切除了特定元素。

使用*选择所有内容

答案 3 :(得分:0)

正如@guradio建议的那样,可以通过在特定元素的兄弟上应用不透明度来完成:

&#13;
&#13;
$('.specific_element').siblings().css('opacity','.3');
&#13;
body{
  border: 1px solid;
}

.specific_element{
  border: 1px solid red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>There are some texts</p>
<div class="specific_element">
  sth
</div>
<p>whatever</p>
&#13;
&#13;
&#13;