페이지 접근시 해당 메뉴명에 컬러를 주려고 하였으나, 페이지가 이동할 때마다 새로고침을 하여 onclick 이벤트로 불가하여 다른 방법으로 기능 구현을 하였습니다.
- document.location.pathname으로 링크 주소를 가져와서, 변수에 담음
- a[href*='"+link+"']: a href='xxx' xxx 에 link 의 문자열이 포함되었는지 찾기
- 포함되었을 경우, 클래스를 추가하여 style 적용
- jQuery: $(".menu ul li a[href*='"+link+"']")
- javascript: document.querySelectAll(".menu ul li a[href*='"+link+"']")
[attr*=value]
attr이라는 특성값을 가지고 있으며, 값 안에 value라는 문자열이 적어도 하나 이상 존재한다면 이 요소를 선택합니다.
https://developer.mozilla.org/ko/docs/Web/CSS/Attribute_selectors
코드
<script>
$(function() {
const link = document.location.pathname; //링크 주소
$(".menu ul li a[href*='"+link+"']").addClass('on')
})
</script>
반응형
'개발 > Javascript' 카테고리의 다른 글
[프론트엔드 예상 면접] Promise와 Async/await 차이점 (0) | 2024.08.13 |
---|---|
[jQuery] css 가져오기 변경하기 (0) | 2023.07.10 |
[js] 브라우저 종류 확인 (navigator.userAgent) (0) | 2023.02.27 |
[js] 자주 쓰는 정규식 함수 만들기 (0) | 2023.02.27 |
[js] 페이지 리다이렉트 (location.href vs location.replace) (0) | 2023.02.27 |
댓글