jQuery 질문... ㅜㅜ 채택완료

5년 전 조회 2,604

안녕하세요, jQuery attr 함수가 생각대로 잘 안되서 질문드립니다 ㅎㅎ

3696597773_1604380430.8308.png

 

이렇게 숨기기/보이기 버튼을 클릭할때마다 밑의 <div id="search_div">가 나타나고 숨겨지고 할려고합니다...

처음 버튼을 눌렀을때는 숨겨지는데 다시 한번 누르면 안나타나내요 ㅜㅜ

attr을 사용해 클릭할때마다 class 값을 바꿔가면서 show(), hide()를 등록해줬는데 왜 다시 show()는 안되는지 이해가 안됩니다

 

그래서 코드의 밑부분에 버튼의 class 값을 출력을 해봤는데 undefined라네요... 위에 사진에도 있습니다;

애초에 그럼 버튼의 class 값이 지정되지 않았단 뜻이여서 attr 해도 소용이 없었던 걸까요??

 

뭐가 잘못된지 전혀 모르겠습니다. 아니면 다른 방법이라도 알려주실분 ㅜㅜ

 

 

Copy
<button id="btn" class="hidden">숨기기/보이기</button>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.0.min.js" ></script>

<script type="text/javascript">
  $('.hidden').click(function(){
    $("#btn").attr('class','show');
    $('#search_div').hide();
  });

  $('.show').click(function(){
    $("#btn").attr('class','hidden');
    $('#search_div').show();
  });
  var class_by_id = document.getElementById('btn').ClassName;
  document.write(class_by_id); 
</script>

답변 2개

채택된 답변
+20 포인트

클래스 추가/삭제 함수는 따로 있습니다.

addClass() / removeClass() 를 이용하세요

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

단순히 보여주기 숨기기는 jquery show(), hide() 기능을 사용하셔도 됩니다

굳이 클래스와 css까지 사용하셔야되는 상황이 아니라면 더 간편한 기능을 사용하세요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고