JS소스모듈

부모 엘리먼트로 올라가면서 셀렉터를 만족하는 가장 가까운 요소를 찾기

JoyYellow 2022. 11. 9. 14:37
const getClosestElement = (element, selector) => {
    let evaluate = false;
    
    // test() 메서드는 주어진 문자열이 정규 표현식을 만족하는지 판별하고, 그 여부를 true 또는 false로 반환합니다.
    // 앞에 . 이 있는가? 라고 묻고 있습니다. 
    if (/^\./.test(selector)) {
        evaluate = element.classList.contains(selector);
    } else {
        evaluate = element.tagName === selector.toUpperCase();
    }

    if (evaluate) {
        return element;
    }
    return getClosestElement(element.parentElement, selector);
}

export default getClosestElement;

출처: https://github.com/paullabkorea/theJungleFinalCodingTestFrontEnd