본문 바로가기
Javascript

Javascript - HTML Element 컨트롤

by DGK 2021. 10. 2.

 

인프런 자바스크립트 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

HTML Element 컨트롤

 

  • HTML Element control
<기본 개념>
//HTML Element에 접근하는 방법

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
  Text:
  <br>
  <input type="text" id="text1">
  <br>
  <button type="button" onclick="doSave();">Save</button>
  <script>
   function doSave( ){
    
   var oText1 = document.getElementById("text1");
   console.log(oText1);
    
   var oText2 = document.querySelector("#text1");
   console.log(oText2);
    
   // 결과 : <input type="text" id="text1">
    
   //위의 두 가지 방법으로 HTML Element에 접근할 수 있으며,
   //콘솔창의 결과 값은 모두 <input type="text" id="text1">로 동일하다.
    
   }
  </script>
</body>
</html>



//HTML Element에 접근하여, 속성 값을 새롭게 부여하는 방법

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
  Text:
  <br>
  <input type="text" id="text1">
  <br>
  <button type="button" onclick="doSave();">Save</button>
  <script>
   function doSave( ){
    
   document.getElementById("text1").value = "32831831";
    
   //이 경우, id가 'text1'인 HTML Element의 value 값은 32831831이 된다.

   //이처럼 HTML Element에 접근하여 해당 Element의 속성 값을
   //새롭게 부여하거나 변경할 수 있다.
    
   }
  </script>
</body>
</html>



//HTML Checkbox에 접근하는 방법

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
  <br> 관심사:
   <label>
    <input type="checkbox" name="chk_interest" value="it">IT/컴퓨터</label>
   <label>
    <input type="checkbox" name="chk_interest" value="entertainment">엔터테인먼트</label>
   <label>
    <input type="checkbox" name="chk_interest" value="sports">스포츠</label>
   <label>
    <input type="checkbox" name="chk_interest" value="shopping">쇼핑</label>
   <label>
    <input type="checkbox" name="chk_interest" value="book">도서</label>
  <br>
  <script>
   function doSave( ){
    
   var oCheckbox = document.getElementsByName("chk_interest");
   
   var oCheckbox2 = document.querySelectorAll("[name=chk_interest]"); 
   
   // 결과 : NodeList(5) [input, input, input, input, input]
   
   //이러한 방식으로 Checkbox에 접근할 수 있다.(두 가지 방법 모두 동일한 결과)
   
   //Checkbox의 name이 동일해야만, 하나의 Checkbox로 묶일 수 있다.
   
   }
  </script>
</body>
</html>



//HTML Checkbox에서 체크된 값만 가져오는 방법

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
  <br> 관심사:
   <label>
    <input type="checkbox" name="chk_interest" value="it">IT/컴퓨터</label>
   <label>
    <input type="checkbox" name="chk_interest" value="entertainment">엔터테인먼트</label>
   <label>
    <input type="checkbox" name="chk_interest" value="sports">스포츠</label>
   <label>
    <input type="checkbox" name="chk_interest" value="shopping">쇼핑</label>
   <label>
    <input type="checkbox" name="chk_interest" value="book">도서</label>
  <br>
  <script>
   function doSave( ){
    
   var oCheckbox = document.getElementsByName("chk_interest");
   
   for(var i = 0 ; i < oCheckbox.length ; i++){
     if(oCheckbox[i].checked){
     console.log(oCheckbox[i].value);
     }
   }

   var oCheckbox2 = document.querySelectorAll("[name=chk_interest]:checked");      
   console.log(oCheckbox2);
   
   // 결과 : 두 가지 방식 모두 동일하게 Checkbox에서 체크된 값을 가져온다.
   
   //document.getElementsByName은 for문과 함께 사용하는 반면에,
   //document.querySelectorAll은 parameter 값으로
   //[name=chk_interest]:checked를 사용하면 동일한 결과 값을 얻을 수 있다.
   
   //즉, document.querySelectorAll의 parameter 값이 
   //[name=chk_interest]라면, name이 chk_interest인 Element를 
   //모두 가져오겠다는 의미이며, 만약 parameter 값이 
   //[name=chk_interest:checked]라면, name이 chk_interest인
   //Element에서 체크된 값만 가져오겠다는 의미이다.(for문과 동일한 기능)
   
   //결국 querySelectorAll을 사용했을 때 코드가 더욱 간결해진다.
   
   //document.querySelectorAll의 결과 값은 무조건 배열 형태로 출력된다. 
   
   }
  </script>
</body>
</html>



//HTML Radio에 접근하는 방법

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
  <br> Radio:
  <label>
   <input type="radio" name="radio_email_yn" value="Y" checked>동의</label>
  <label>
   <input type="radio" name="radio_email_yn" value="N">거부</label>
  <br>
  <script>
   function doSave( ){
    
   var oRadio = document.querySelector("[name=radio_email_yn]:checked");
   console.log(oRadio);
   
   // 결과 : 
   //<input type="radio" name="radio_email_yn" value="Y" checked="">
   
   //이러한 방식으로 HTML의 Radio에 접근할 수 있다.
   
   //Radio는 선택된 값이 1개이므로, querySelectorAll이 아닌
   //querySelector를 사용해야 한다.
   
   }
  </script>
</body>
</html>



//HTML Select에 접근하는 방법

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
  <br> Select:
   <select id="select1">
    <option value="KO">Korea</option>
    <option value="CN">China</option>
    <option value="JP">Japan</option>
   </select>
  <br>
  <script>
   function doSave( ){
    
   var oSelect = document.getElementById("select1");
   console.log(oSelect.value);
            
   // 결과 : 선택된 옵션의 value 값이 출력된다.
   
   //이러한 방식으로 HTML의 Select에 접근할 수 있다.
   
   }
  </script>
</body>
</html>



//HTML div 태그에 접근하는 방법

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
  <br>
   <div id="div1"><h1>ABCDEFG</h1></div>
  <br>
  <script>
   function doSave( ){
    
   console.log(document.getElementById("div1"));
   
   // 결과 : <div id="div1"><h1>ABCDEFG</h1></div>
   
   
   console.log(document.getElementById("div1").innerText);
   
   // 결과 : ABCDEFG
   
   
   console.log(document.getElementById("div1").innerHTML);
   
   // 결과 : <h1>ABCDEFG</h1>
   
   
   console.log(document.getElementsByTagName("div"));
   
   // 결과 : HTMLCollection [div#div1, div1: div#div1]
   
   //HTML의 모든 div 태그를 가져온다.
   
   }
  </script>
</body>
</html>

'Javascript' 카테고리의 다른 글

Javascript - HTML 스타일 컨트롤  (0) 2021.10.09
Javascript - HTML 이벤트 컨트롤  (0) 2021.10.02
Javascript - 정규식(RegExp)  (0) 2021.10.02
Javascript - Strict Mode  (0) 2021.10.01
Javascript - Error(try, catch, finally)  (0) 2021.10.01

댓글