jquery选择指定元素之外的所有元素

最近的项目中有这么一个需求,点击一排图片中的任意一张后底部弹出一个对话框,要求点击任意地方隐藏对话框

这个时候用not()显然是不现实的,用closest()可以实现差不多的功能

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>选择指定元素外的其他所有元素</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
border: 1px solid red;
overflow: hidden;
}
.box > div{
height: 100px;
width: 100px;
background-color: cadetblue;
float: left;
margin-left: 10px;
}
.box > div > div{
height: 50px;
width: 50px;
background-color: coral;
}
</style>
</head>
<body>
<div class="box">
<div class="num1">
<div></div>
</div>
<div class="num2">
<div></div>
</div>
<div class="num3">
<div></div>
</div>
</div>
<script type="text/javascript" src="js/jquery-1.11.0.js" ></script>
<script>
$(document).click(function(e){
if( $(e.target).closest('.num2').length == 0 ){
alert("事件触发");
}
});
</script>
</body>
</html>

关键知识点:jquery closest()

closest():在DOM树中从当前元素开始向上寻找(包括当前元素),并用匹配元素构建一个新的jquery对象

参考:http://www.w3school.com.cn/jquery/traversing_closest.asp

上一篇:frameset的固定放置模式,不能放入


下一篇:Educational Codeforces Round 23.C