一、closest方法介紹
jQuery.closest方法是jQuery庫中的一種方法,作用是返回與指定的選擇器或jQuery對象最近的祖先元素。
該方法接受一個選擇器或jQuery對象作為參數,因此可用在以下兩種情況:
1. 通過選擇器查找最近祖先元素;
2. 通過已有的jQuery對象查找最近祖先元素。
$(selector).closest(filter)
二、closest用法詳解
closest方法有許多用法,包括:
1、查找最近的祖先元素
當我們想要查找一個元素的最近的祖先元素時,可以使用closest方法。例如:
$(this).closest('div')
上述代碼就是找到當前元素最近的祖先div元素。
當然,我們也可以傳入一個jQuery對象來作為closest方法的參數:
var $parent = $('li').closest('#parent');
上述代碼就是找到li元素最近的id為parent的祖先元素。
2、查找最近的祖先元素(多個條件)
有時,我們需要在一個元素的祖先元素中查找符合多個條件的元素。這時,可以利用closest方法接收多個選擇器的特性來實現:
$(this).closest('div, span')
上述代碼會返回離當前元素最近的div或span元素。
3、查找最近的祖先元素(使用過濾函數)
除了選擇器之外,closest方法還可以接受一個過濾函數作為參數來對祖先元素進行過濾:
$(this).closest(function() {
return $(this).is('div') && $(this).hasClass('container');
});
上述代碼會返回當前元素的最近的class包含container的div元素。
三、closest實踐案例
1、動態展開樹形結構
在樹形結構中,我們想要實現動態展開子節點的功能,可以利用closest方法來找到需要展開的元素的祖先節點。
$('body').on('click', '.expand-btn', function(){
var $btn = $(this),
$parentLI = $btn.closest('li'),
$childUL = $parentLI.find('ul');
$btn.toggleClass('active');
$childUL.slideToggle();
});
上述代碼為一個簡單的樹形結構的展開/摺疊功能,當用戶點擊摺疊按鈕時,需要找到當前元素最近的li元素,然後根據該li元素查找其下的ul元素。
2、表單交互驗證
表單驗證時,我們需要在用戶填寫完相應的表單項後,實時對填寫內容進行驗證。可以利用closest方法來查找與當前表單項最近的表單元素,然後進行驗證操作。
$('form').on('keydown', 'input', function(){
var $input = $(this),
$closestForm = $input.closest('form');
if($closestForm && $closestForm.length > 0) {
validateInput($input);
}
});
上述代碼為一個簡單的表單驗證方法,當用戶在表單中輸入內容時,需要找到與其最近的form元素來進行驗證操作。
結語
通過本文對jQuery.closest方法的介紹及其實際應用,相信大家對該方法已經有了更深入的了解。
我們可以將closest方法應用於各種場景,為我們的前端開發工作帶來更多的便利。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/301823.html