jQuery closest()

admin發表於2018-02-02
此方法從元素本身開始,逐級向上級元素匹配,並返回最先匹配的元素。

首先檢查當前元素是否匹配,如果匹配則直接返回元素本身。如果不匹配則向上查詢父元素,一層一層往上,直到找到匹配選擇器的元素,否則返回一個空jQuery物件。 

語法結構一:

[JavaScript] 純文字檢視 複製程式碼
.closest(selector)

引數解析:

selector:一個用於匹配元素的選擇器字串。

jQuery1.3版本新增。

語法結構二:

[JavaScript] 純文字檢視 複製程式碼
.closest(selector [,context])

引數解析:

(1).selector:一個用於匹配元素的選擇器字串。

(2).context:可選,指定選擇器查詢元素所在上下文的dom物件。

jQuery1.4版本新增,jQuery1.7版本不建議使用,jQuery1.8版本刪除。

語法結構三:

[JavaScript] 純文字檢視 複製程式碼
.closest(jQuery object)

引數解析:

jQuery object:一個用於匹配元素的jQuery物件。

jQuery1.6版本新增。

語法結構四:

[JavaScript] 純文字檢視 複製程式碼
.closest(element)

引數解析:

element:一個用於匹配元素的DOM元素。

jQuery1.6版本新增。

程式碼例項:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
.father{
  width:300px;
  height:250px;
  background:#ccc;
}
.children{
  width:200px;
  height:150px;
  background:#AB484A
}
p{
  width:150px;
  height:50px;
  line-height:50px;
  background:blue;
  text-align:center;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("p").closest("div").css("border","5px solid black");
})
</script>
</head>
<body>
<div class="father">
  <div class="children">
    <p>螞蟻部落一</p>
  </div>
  <p>螞蟻部落二</p>
</div>
<p>螞蟻部落三</p>
</body>
</html>

設定距離p元素集合中的每一個p元素最近的div元素的邊框樣式。

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
.box{
  width:300px;
  height:250px;
  background:#ccc;
}
p{
  width:150px;
  height:50px;
  line-height:50px;
  background:blue;
  text-align:center;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  var $middle = $("#middle");
  $("p").closest($middle).
  css("border", "5px solid red");
})
</script>
</head>
<body>
<div class="box">
  <div id="middle">
    <p>螞蟻部落一</p>
  </div>
  <p>螞蟻部落二</p>
</div>
</body>
</html>

方法的引數是一個jQuery物件,能夠設定此物件對應的元素邊框樣式。

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
.box{
  width:300px;
  height:250px;
  background:#ccc;
}
p{
  width:150px;
  height:50px;
  line-height:50px;
  background:blue;
  text-align:center;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  var odiv = document.getElementById("middle");
  $("p").closest(odiv).
  css("border", "5px solid red");
})
</script>
</head>
<body>
<div class="box">
  <div id="middle">
    <p>螞蟻部落一</p>
  </div>
  <p>螞蟻部落二</p>
</div>
</body>
</html>

功能和上一個程式碼相同,只不過引數是一個dom元素物件。

相關文章