IT/JavsScript

Pure Javascript에서 siblings() 사용하기

라임웨일 2022. 2. 18. 13:15
반응형

 

jQuery에 익숙해지면 너무나도 간단하지만 저는 요즘 작업할 때 jQuery를 사용하지 않고 순수 자바스크립트로 작업을 하려고 합니다. React나 Vue와 같은 프레임이 많이지면서 jQuery와 같이 Dom을 직접 탐색하여 이벤트를 발생시키는 건 스크립트 충돌면에서도 좋지 않고 또 별도의 npm을 설치해야 하기 때문입니다. 

 

자바스크립트에서 jQuery 없이 사용하려면 너무나도 불편했던 형제선택, siblings()를 사용해 보겠습니다. 

 

function siblings(t) {
  const children = t.parentElement.children;
  const tempArr = [];

  for (let i = 0; i < children.length; i++) {    
    tempArr.push(children[i]);
  }
  
  return tempArr.filter(function(e){
    return e != t;
  });
}

위의 함수를 이용하여 매개 변수로 형제선택을 하여야 하는 이벤트 요소를 전달하면 배열로 형제 요소를 반환합니다.

 

만약 특정 이벤트(클릭) 중 자신이 선택한 특정 요소에만 클래스가 생성되고 형제 요소에는 클래스가 삭제되는 것도 위의 코드를 이용하면 간단하게 활용할 수 있습니다.

 

function siblings(t, removeClass) {
  const children = t.parentElement.children;

  for (let i = 0; i < children.length; i++) {    
    children[i].classList.remove(removeClass)
  }  
}

위의 코드처럼 이벤트 발생 요소와 함께 매개변수로 클래스만 같이 전달해주면 됩니다. 

자신의 프로젝트에 맞게 스크립트를 수정하여 모두 즐거운 코딩 하세요.

 

감사합니다.

반응형