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)
  }  
}

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

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

 

감사합니다.

반응형
광고차단(애드블록)프로그램이나 브라우저를 사용중이시면 프로그램을 비활성화이나 블로그 주소를 예외 처리 해주시면 광고가 노출됩니다. 귀찮고 번거롭겠지만 광고 클릭은 저에게는 큰 힘이 됩니다. 🙇🏻‍♂️🙇🏻‍♀️
제 블로그의 모든 글은 제가 직접 작성 하고 다른 글을 참고할 때는 이전 글보다 읽기 편하게 수정해서 작성하고 있습니다. 커피 한잔 사먹고 더 열심히 좋은글로 보답하겠습니다.
오늘도 제 블로그에 와 주셔서 감사합니다. :)
//