• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 div태그 안 img button 태그 질문있습니다.

div태그 안 img button 태그 질문있습니다.

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #69875

    배상현
    참가자
    타입스크립트로 html 타입 건드리는 거 첫번째 버튼누를시 이미지 바뀌는 것을 구현했는데
    html파일안에서 
    <div id="fidiv">
        < img src="1.png" alt="noimg" id="imgg">
        <button id="imgchange">이미지교체</button>
    </div>
    이런식으로 div 태그안에 넣고 진행했습니다.
    근데 img태그는 let imgg = document.getElementById("imgg"); 이렇게 가지고오면 null값이 오더라고요
    그래서 div태그를 먼저 불러와서 div태그안 img 를 불러오게 아래와 같이 작성하였는데
    이 같은 논리면 이미지 교체 버튼인 button 태그도 div 태그안에서 불러와야만 되는거 아닌가요?
    let imgbutton = document.getElementById("imgchange"); 똑같이 id를 사용해서 가져오는데 오류 없이 잘 가져와지네요
    
    let isImg: boolean = true;
    let divv = document.getElementById("fidiv");
    let imgg = divv?.querySelector("img") as HTMLImageElement;
    let imgbutton = document.getElementById("imgchange");
    if (imgbutton instanceof HTMLButtonElement) {
      imgbutton.addEventListener("click", function () {
        if (isImg === true) {
          imgg.src = "2.png";
          isImg = false;
        } else {
          imgg.src = "1.png";
          isImg = true;
        }
      });
    }
    #69876

    배상현
    참가자
    아 해결했습니다 assertion으로 해결을 했는데 
    제가 처음에 시도했던게 제대로 작동을 안하고 있었네요
    if 문에서 imgbutton instanceof HTMLButtonElement && img instancof HTMLImageElement 
    이렇게 조건을 줬을땐 이미지버튼은 narrowing 돼서 오류가 없는데 img은 제대로 narrowing이 되질 않더라고요
    이유가 뭘까요?
    #69938

    codingapple
    키 마스터
    자바스크립트를 html보다 위에 작성해서 null이 된게 아닐까요
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠