카테고리 없음

javascript(21.3.23)

seongjin08 2021. 3. 23. 12:01
const btnArr= ['a','aa','d' , 'ad' ];
  btnArr.push('aa')
  console.log(btnArr[2])

const 는 교수님이 다음에 알려주신다고 한다.

 <script type="text/javascript">
  const btnArr= [];
  function addCard(){
      newId=btnArr.length;
      console.log(newId);
     cardInput=document.querySelector('#text');
    /*아이디 값을 받아서 변수에 담아았다*/  
     cardlist=document.querySelector('#text_list');
    /*내용 출력하는 영역 설정*/  
     li=document.createElement('li');
    /*내용 출력하는 최소단위 엘리먼트*/  
     li.innerHTML=cardInput.value;
    /*li안에 내용을 넣기위해서; cardinput 에 있는 글자를 넣기위해*/  
     delBtn=document.createElement('button');
    /*li안에 버튼을 넣기위해 버튼만 생성*/  
     delBtn.innerHTML='X';
    /*버튼 안에 내용을 넣기위해*/  
     delBtn.setAttribute('id','newId');
    /*버튼에 속성값을 넣기 위해 <버튼 id='[newId]'>X<버튼>>*/  
     delBtn.onclick = function(){
         cardlist.removeChild(this.parentNode);
        /*cardlist 는 내용을 출력하는 부분
        removeChikd 는 매서드 안에 있는 값을 노드제거
        this.parentNode 는 this 개념을 알아야한다.
        parentNode 는 나의 부모 엘리먼트*/  
     }
    /*버튼을 누렀을때 ()안에 있는 내용이 실행된다.*/  
     li.appendChild(delBtn);
    /*li ()안에 여태 만들었던  delBtn을 넣는다. 
    <li></li>*/
     cardlist.appendChild(li);
     /*안에 li 값을 넣는다.*/
     btnArr.push(cardInput.value);
     /*배열에 cardiput.value 를 넣는다.*/
 }

위에 코드를 필요없는 부분을 빼면 이렇게 된다. 뺀 부분은 배열과 관련된 코드인데, 처음 배열은 넣은 것은 내가 클릭했을때 삭제하고 싶은 부분에 위치를 확인하고 없애기위해  배열하여 위치를 만들어주고 그것을 지정해줬는데

function 기능을 주면서 cardlist.removeChild(this.parentNode) 라고 명령어를 주면서 this 가 지정을 해주면서 배열해주는 코드들이 필요가 없어졌다.

 <script type="text/javascript">
        function addCard() {
            cardInput = document.querySelector('#text');
            cardlist = document.querySelector('#text_list');
            li = document.createElement('li');
            li.innerHTML = cardInput.value;
            delBtn = document.createElement('button');
            delBtn.innerHTML = 'X';
            delBtn.onclick = function () {
                cardlist.removeChild(this.parentNode);
            }
            li.appendChild(delBtn);
            cardlist.appendChild(li);
        }
        </script>

여러번 연습해서 안보고 칠수 있지만 계속 한두개씩 오타가 있어 오류가 난후 수정한다...

타자연습을 더 해서 오타를 좀더 줄이면서 해야 할것같다. 지금은 조금씩 배우면서 하는 거라 금방 오류를 찾지만 

코드를 길게 쓸때 더 어려워 질테니...

 

<body>
    <div id="root">

    </div>
    <script type="text/javascript">
        function myTimer() {

            date = new Date();
            time = date.toLocaleTimeString();
            document.querySelector('#root').innerHTML = time;
        }
        setInterval(myTimer, 1000);
    </script>
</body>
       <div>
        <ul id='as'>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
        </ul>
    </div>
    <script type="text/javascript">
    function pick(){
    as = document.querySelector('#as');
    li = document.querySelectorAll('#as>li');
     as.appendChild(li[0]);
    }
     setInterval(pick, 1000);

    </script>

setInterval 은 1000 당 1초다.

사진을 바뀌게 하는 코드

다른건 이해 가는데 li 의 선택 범위를 왜 #as>li 로 줘야 하는 지 이해가 안갔지만 김동철님께서 친절하세 설명해주심

#as>li 로 명령을 주면 배열로 인식해서 li[0] 원하는 위치에 엘리먼트에 명령을 줄수있어서다.

li에 모두 클래스를 줘서 불러올 경우 그 불러온 엘리먼트에 제일 위에 부분에 자동으로 명령을 줘서 우연히 되었던 거였다.

매서드는 ()안에 있는 걸 엘리먼트 형식으로 불러온다. 데이터 타입.


 [] 배열로 가져와서 엘리먼트 형식으로 불러온다

[li,li,li,li,li,]  이런 식으로. 0,1,2,3,4 순으로.

setInretval 안에 들어가는 값을 '인자값'이다. 앞으로 안에 어떤 데이터 타입이 들어가는지 알아야한다. 

 function myTimer() {

        date = new Date();
        time = date.toLocaleTimeString();
        document.querySelector('#root').innerHTML = time;
    }
    setInterval(myTimer, 1000);

시계를 만드는 코드