반응형
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)
}
}
위의 코드처럼 이벤트 발생 요소와 함께 매개변수로 클래스만 같이 전달해주면 됩니다.
자신의 프로젝트에 맞게 스크립트를 수정하여 모두 즐거운 코딩 하세요.
감사합니다.
반응형
'IT > JavsScript' 카테고리의 다른 글
currentTarget vs target 의 차이점 (0) | 2022.04.11 |
---|---|
fetch() 함수 사용하여 API 호출(ajax, Axios, fetch 비교) (0) | 2022.03.18 |
안드로이드(Android), IOS 디바이스 구분하기 (0) | 2021.12.23 |
jQuery를 바닐라 JS로(Vanilla JS) 변경 하기(feat.Pure Javascript) (8) | 2021.12.23 |
자바스크립트 조건절(분기) 함수 공통화 하기 (0) | 2021.12.22 |
광고차단(애드블록)프로그램이나 브라우저를 사용중이시면 프로그램을 비활성화이나 블로그 주소를 예외 처리 해주시면 광고가 노출됩니다. 귀찮고 번거롭겠지만 광고 클릭은 저에게는 큰 힘이 됩니다. 🙇🏻♂️🙇🏻♀️
제 블로그의 모든 글은 제가 직접 작성 하고 다른 글을 참고할 때는 이전 글보다 읽기 편하게 수정해서 작성하고 있습니다. 커피 한잔 사먹고 더 열심히 좋은글로 보답하겠습니다.
오늘도 제 블로그에 와 주셔서 감사합니다. :)
제 블로그의 모든 글은 제가 직접 작성 하고 다른 글을 참고할 때는 이전 글보다 읽기 편하게 수정해서 작성하고 있습니다. 커피 한잔 사먹고 더 열심히 좋은글로 보답하겠습니다.
오늘도 제 블로그에 와 주셔서 감사합니다. :)