closest() 方法获得匹配选择器的第一个祖先元素,从当前元素开始沿 DOM 树向上。
语法:
.closest(selector)
参数selector为字符串值,包含匹配元素的选择器表达式。
如果给定表示 DOM 元素集合的 jQuery 对象,.closest() 方法允许我们检索 DOM 树中的这些元素以及它们的祖先元素,并用匹配元素构造新的 jQuery 对象。.parents() 和 .closest() 方法类似,它们都沿 DOM 树向上遍历。两者之间的差异尽管微妙,却很重要:
.closest() | .parents() |
从当前元素开始 | 从父元素开始 |
沿 DOM 树向上遍历,直到找到已应用选择器的一个匹配为止。 | 沿 DOM 树向上遍历,直到文档的根元素为止,将每个祖先元素添加到一个临时的集合;如果应用了选择器,则会基于该选择器对这个集合进行筛选。 |
返回包含零个或一个元素的 jQuery 对象 | 返回包含零个、一个或多个元素的 jQuery 对象 |
2. Click me!をクリックすると色も変わります。これも上記の手順を経て、現在の要素から上に一致します。ただし、 は条件を満たさず、上に行くときに
3. デモの例については、http://www.w3school.com.cn/tiy/t.asp?f=jquery_traversing_closest
例 2:
これにより、レベル 2
以下に示すように:
要素を検索しているとします。
$('li.item-a').closest('li').css('background-color', 'red');
これにより、リスト項目 A の色が変更されます。 .closest() メソッドは、DOM ツリーを上にたどる前に、セレクターが項目 A と一致するまで li 要素自体から検索します。
例 3
DOM 要素をコンテキストとして渡し (つまり、検索の最大範囲を制限し)、その中で最も近い要素を検索できます。
レベル 1