如何使用.not()来选择body中除一个元素外的所有元素



我在jQuery中卡住了一个基本的.not()方法。除了一个元素外,我无法选择所有元素。使用.not()似乎是正确的。

提示吗?

$(document).ready(function() {
$('body').not($('#exclude')).click(function() {
console.log('HELLO');
})
})
#container {
background: red;
padding: 2vh;
height: 300px;
width: 400px;
}
#exclude {
position: relative;
background: green;
right: 0px;
top: 50px;
width: 70px;
margin: 0;
z-index: 5;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<div id="container">
Print Hello when click
<p id="exclude">
DO Nothing when click
</p>
</div>
</body>

您可以这样检查event.target:

if(event.target.id === "exclude")
return;

$(document).ready(function() {
$('body').click(function(event) {
if(event.target.id === "exclude")
return;
console.log('HELLO');
})
})
#container{
background: red;
padding: 2vh;
height: 300px;
width: 400px;
}
#exclude {
position: relative;
background: green;
right: 0px;
top: 50px;
width: 70px;
margin: 0;
z-index: 5;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<div id="container">
Print Hello when click
<p id="exclude">
DO Nothing when click
</p>
</div>
</body>

最新更新