我必须排除在jQuery中嵌套另一个div的div。以下是我的代码,
$(document).ready(function(){
$(".intro").not(".big").css("background-color", "yellow");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<body>
<h1>Welcome to My Homepage</h1>
<div class="intro">My name is Donald.
<p>I live in Duckburg.</p>
<p>My best friend is Mickey.</p>
<div class="big">Who is your favourite:</div>
</div>
<ul id="choose">
<li>Goofy</li>
<li>Mickey</li>
<li>Pluto</li>
</ul>
</body>
</html>
我尝试了.not
和.filter
方法,但是它们不起作用。我想选择intro
类而不选择big
类。
答案 0 :(得分:1)
尝试修改选择器:
$(document).ready(function(){
$(".intro div:not(.big)").css("background-color", "yellow");
});
答案 1 :(得分:0)
您应在not
的子级上使用.intro
-
$(".intro *").not(".big")
顺便说一句,如果您只想更改背景,可以通过css-
.intro *:not('.big') {
backgroung: yellow;
}
答案 2 :(得分:0)
我认为它正在工作。但是div
位于父级中。
为什么不将.big
设置为background-color: white;
?
答案 3 :(得分:0)
我将克隆原始的,然后从克隆中删除_gcp_gatekeeper/authenticate
。然后,您可以对克隆执行任何操作。
.big
答案 4 :(得分:0)
您的div简介将div大包裹,因此,当您将背景颜色应用于intro类时,它将应用于整个块,因此您看不到结果。但是,仅使用CSS即可实现。
var intro_copy = $('.intro').clone();
intro_copy.find('.big').remove();
$(document).ready(function(){
$(".intro").not(".big").css("background-color", "yellow");
});
.big{background-color: white}