2017-08-08 175 views
2

這裏是我的代碼:爲什麼.not()沒有任何影響?

$('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>

所有我想要做的就是保證它們有一個紅色的邊框1元素的不透明度。我的意思是我想在除特定元素之外的所有內容上應用opacity: .3。我怎樣才能做到這一點?

+0

特定元素爲人體內部,你對身體施加的不透明度。所以即使排除一個元素,身體內部的所有元素都將不透明,因爲該元素仍在體內 – guradio

+0

@guradio那裏'.not()'的工作是什麼? – stack

+0

因此,即使您排除一個元素,因爲該元素仍在體內,所有身體內部的所有內容都將具有不透明性 – guradio

回答

3
  1. 應用不透明的容器的兒童與特定元素之外

$('body').children().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>

0

由於@guradio建議,將通過上應用不透明度來實現兄弟姐妹的具體元素:

$('.specific_element').siblings().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>

2

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

我建議'$('body> *')' - 因爲否則,有效不透明度下的兩個級別將是0.09,三級下降0.027,然後是0.0081等 –

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

一切除了特定元素。

使用*選擇一切

相關問題