jQuery closest()
方法用于返回选择的元素的第一个祖先元素。它是 jQuery 中的内置方法。
为了搜索第一个祖先,closest() 方法从当前元素向上遍历,如果不匹配,则将逐个父项进行搜索,直到找到与指定表达式匹配的元素。此方法返回所选元素的第一个祖先。
它和parents() 方法类似,两者都向上移动搜索 DOM 树。
- parents() 方法从父元素开始,并返回与指定表达式匹配的所有祖先。
- closest() 方法从当前元素开始,并返回与指定表达式匹配的第一个祖先。
语法
$(selector).closest(selector, context);
参数
- selector:它是必须参数。它是指定选择器表达式、元素或jQuery对象的此值过滤元素并缩小祖先搜索范围。
- context: 它是可选的。它是一个DOM元素,可以在其中找到匹配的元素。
例子
例1
找p元素第一个祖先div元素的例子
<!DOCTYPE html>
<html>
<head>
<style>
.main * {
display: block;
font-size: 20px;
position: relative;
border: 2px solid black;
color: black;
padding: 10px;
margin: 17px;
}
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
function fun(){
$(document).ready(function(){
$("p").closest("div").css({ "font-size": "30px", "color": "blue", "border": "6px dashed blue"});
});
}
</script>
</head>
<body class = "main" style="width:500px;height:400px;"> body
<div> div1
<div> div2
<ul> ul
<h2> h2
<p> p 元素 </p>
</h2>
</ul>
</div>
</div>
<button onclick = "fun()"> 点击看看 </button>
</body>
</html>
例2
使用上下文context的例子,表示在这个范围内搜索,本例中,上下文元素为:document.getElementById("dom");
<!DOCTYPE html>
<html>
<head>
<style>
.main * {
display: block;
font-size: 20px;
position: relative;
border: 2px solid black;
color: black;
padding: 10px;
margin: 17px;
}
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
function fun(){
$(document).ready(function(){
var context = document.getElementById("dom");
$("p").closest("div", context).css({ "font-size": "30px", "color": "blue", "border": "6px dashed blue"});
});
}
</script>
</head>
<body class = "main"style="width:500px;"> body
<div id = "dom"> div1
<div> div2
<ul> ul
<h2> h2
<p> p 元素 </p>
</h2>
</ul>
</div>
</div>
<button onclick = "fun()">点击看看</button>
</body>
</html>