返回值:jQueryclosest(expr, [context])
概述
jQuery 1.3新增。從元素本身開始,逐級向上級元素匹配,并返回最先匹配的元素。
closest會首先檢查當(dāng)前元素是否匹配,如果匹配則直接返回元素本身。如果不匹配則向上查找父元素,一層一層往上,直到找到匹配選擇器的元素。如果什么都沒找到則返回一個空的jQuery對象。 closest和parents的主要區(qū)別是:1,前者從當(dāng)前元素開始匹配尋找,后者從父元素開始匹配尋找;2,前者逐級向上查找,直到發(fā)現(xiàn)匹配的元素后就停止了,后者一直向上查找直到根元素,然后把這些元素放進(jìn)一個臨時集合中,再用給定的選擇器表達(dá)式去過濾;3,前者返回0或1個元素,后者可能包含0個,1個,或者多個元素。 closest對于處理事件委托非常有用。
參數(shù)
exprString, Array
用以過濾元素的表達(dá)式。jQuery 1.4開始,也可以傳遞一個字符串?dāng)?shù)組,用于查找多個元素。
context (可選)Element, jQuery
作為待查找的 DOM 元素集、文檔或 jQuery 對象。
示例
描述:
展示如何使用clostest查找多個元素
HTML 代碼:
<ul><li></li><li></li></ul>
jQuery 代碼:
$("li:first").closest(["ul", "body"]);
結(jié)果:
[ul, body]
描述:
展示如何使用clostest來完成事件委托。
HTML 代碼:
<ul>
<li><b>Click me!</b></li>
<li>You can also <b>Click me!</b></li>
</ul>
jQuery 代碼:
$(document).bind("click", function (e) {
$(e.target).closest("li").toggleClass("hilight");
});