여러가지 아코디언액션을 적용하는 방법이 잇는데
CSS 클래스로 컨트롤 하는 방식이 가장 좋은 방법인 것 같다.
[html]
onclick="toggleClass( this.parentNode, 'fold')"
클릭시 부모에 fold라는 클래스를 토글하고 싶을때 (추가/제거) this에 parentNode 붙여준다.
[vanilla javascript]
// 아코디언
var toggleClass = function (element, tClass) {
tClass = tClass.replace(/\s/g, "");
var classes = element.className;
element.className = classes.indexOf(tClass) !== -1
? classes.replace(" " + tClass, "")
: classes + " " + tClass;
}
자바스크립트에서 replaceAll 은 없다. 정규식을 이용하여 대상 스트링에서 모든 부분을 수정해 줄 수 있다
\S : 공백 문자를 제외한 문자
g : 글로벌의 뜻. 전역 매칭을 한다. 처음 부터가 아닌 전체에서 정규식이 맞는걸 찾는다.
className 사용법 아래 사이트 참고
indexOf() 메서드는 호출한 String 객체에서 특정 값의 첫 번째 일치하는 인덱스를 반환합니다. 일치하는 값이 없으면 -1을 반환합니다.https://www.w3schools.com/jsref/jsref_indexof.asp
'Frontend > Javascript' 카테고리의 다른 글
JSON.parse(), JSON.stringify() (0) | 2021.03.05 |
---|---|
스타일 내기위한 자바스크립트 (0) | 2021.02.28 |
JavaScript / Object / Element.setAttribute() / 요소의 속성 값을 정하는 메서드 (0) | 2020.11.03 |
Array.prototype.slice.call 이해하기 (0) | 2018.12.18 |
vanilla javascript 이미지 찾아서 바꾸기 (0) | 2018.12.11 |