:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
24/04/08 15:22
질문의 요지를 잘 모르겠는데요;; 접두사나 접미사를 분리할때는, 자바스크립트 스트링의 slice나 split 함수 등을 이용해서 분리해내시면 될듯 합니다.
예를 들어 "btn-aaa", "btn-bbb" 등에서 btn만 찾아내고 싶다면, var className = [해당 element의 클래스명]; var prefix = className.split("-")[0]; // prefix = "btn" 이런 식으로 합니다. 자세한건 MDN등을 찾아서 javascript string의 메소드들을 찾아보세요.
24/04/08 15:35
let btnClass = $(this).prop("class");
btn.mouseenter(function(){ btn.parent(".map").prop("class", btnClass ); }); 하면 끝이지 않을까요?!
24/04/08 17:32
질문하신 내용을 바탕으로, 버튼의 클래스명에서 특정 접두사나 접미사를 추출하여 다른 요소의 클래스로 활용하는 고급적인 방법을 제공해드리겠습니다. 이는 유연하고 확장 가능한 코드를 작성하는 데 도움이 됩니다.
이를 위해, 버튼 클래스명에서 접두사 "btn-" 뒤에 오는 문자열을 추출하고, 해당 문자열을 이용해 동적으로 "map" 클래스에 "bg-" 접두사와 함께 추가할 것입니다. 아래는 이 과정을 구현한 코드 예제입니다. javascript Copy code $(function() { // 페이지 로드 시 기본적으로 첫 번째 버튼에 해당하는 배경 클래스 추가 let initialClass = $('.map button[class*="btn-"]').first().attr('class').match(/btn-(w+)/)[1]; $('.map').addClass('bg-' + initialClass); // 모든 버튼에 대해 이벤트 리스너 추가 $('.map button[class*="btn-"]').mouseenter(function() { // 현재 버튼의 클래스에서 'btn-' 다음 오는 문자열 추출 let suffix = $(this).attr('class').match(/btn-(w+)/)[1]; // 'map' 요소에서 모든 'bg-' 접두사가 붙은 클래스 제거 $('.map').removeClass(function(index, className) { return (className.match(/(s|^)bg-w+/g) || []).join(' '); }); // 추출한 접미사를 이용해 새로운 클래스 추가 $('.map').addClass('bg-' + suffix); }); }); 이 코드는 다음과 같이 작동합니다: 페이지가 로드될 때, 첫 번째 버튼에 해당하는 배경 클래스를 "map" div에 추가합니다. 이를 통해 초기 상태에서도 관련 배경이 보여지도록 합니다. 각 버튼에 마우스를 올렸을 때, 해당 버튼의 클래스명에서 "btn-" 접두사 다음에 오는 문자열(접미사)을 추출합니다. "map" div에서 모든 "bg-"로 시작하는 클래스를 제거합니다. 이는 removeClass 함수 내에서 정규식을 사용하여 이루어집니다. 추출한 접미사를 "bg-" 접두사와 결합하여 새로운 클래스를 "map" div에 추가합니다. 이 방법을 사용하면, 버튼의 클래스명이 얼마나 많거나 변동적이든 상관없이 코드를 수정하지 않고도 동적으로 배경 클래스를 변경할 수 있습니다. 이는 유지 보수를 쉽게 하고, 확장성 있는 코드를 작성하는 데 매우 유용합니다.
|