반응형

onclick

 

1) HTML 태그 안에서 이벤트 처리기 연결 

<div id="container"> 
	<img id="pic" src="pizza.png" alt="" onclick="fn_changePic( )">. 
</div> 


<script> 
  // pizza 누르면 chciken 사진으로 변경
  var pic = document.querySelector('#pic');

  function fn_changePic( ) {
      pic.src = "chicken.png";
  } 
</script>



2) DOM 요소 안에서 이벤트 처리기 연결 

<div id="container"> 
	<img id="pic" src="pizza.png" alt="">. 
</div> 


<script> 
  // pizza 누르면 chciken 사진으로 변경
  var pic = document.querySelector('#pic');
  pic.onclick = fn_changePic;

  function fn_changePic( ) {
      pic.src = "chicken.png";
  } 
</script>

 

addEventListener() 

한 요소에 여러 이벤트가 발생했을 때 동시에 처리 가능, document 객체나 window 객체 가능

 

변수.addEventListener("이벤트 유형", 함수, 캡처 여부)

*캡처 여부 : false(버블링)가 기본 값. true는 캡처링

 // pizza 마우스 오버시 chciken 사진으로 변경
var pic = document.querySelector('#pic');
pic.addEventListener("mouseover", fn_changePic, flase);
pic.addEventListener("mouseout", fn_OriPic, flase);


  function fn_changePic( ) {
      pic.src = "chicken.png";
  } 

  function fn_OriPic( ) {
      pic.src = "pizza.png";
  } 

 

  

반응형
반응형

1. id 선택자 : getElementById()

<body>
<div id="container">
	<h1 id="tittle>id로 선택하기</h1>    
</div>
    
 <script>
 // id로 받아서 클릭하면 폰트 사이즈 조절하는 함수
 document.getElementById("tittle").onclick = function () {
 	this.style.fontsize = "2em"
  }
 </script>
 </body>

 

2. Class 선택자 : getElementsByClassName()

 

*class는 id와 다르게 웹 문서 안에서 여러 번 사용 가능하기 때문에 Elements

<body>
  <div id="container">
      <span class="content">1</span>    
      <span class="content">2</span>  
  </div>
 </body>

HTMLCollection : 여러 개의 HTML 요소를 담고 있는 자료 형식으로 배열과 비슷함 

document.getElementsByClassName("content")

▶ HTMLCollection(2) [span.content, span.content]

 

*클래스 요소 중 1개의 요소에만 접근하고 싶을 때

//클래스로 접근하여 첫번째 클래스의 스타일 변경 (밑줄)
document.getElementsByClassName("content")[0].style.textDecoration = "underline"

3. TAG : getElementsByTagName()

 

// h2 태그의 배경 색상을 #eee로 바꾸기
document.getElementsByTagName("h2").style.backgroundcolor = "#eee"

 

*class와 동일하게 특정 요소에만 접근할 수 있음 

 document.getElementsByTagName("h2")[0].style.backgroundcolor = "#eee"

 

4. QuerySelector(), QuerySelectorAll()

: id, class, tag 모두 가능

// id
document.QuerySelector("#tittle")
// class (한 문서에 여러 번 사용 가능하여 QuerySelectorAll() 함수 사용
document.QuerySelectorAll(".content")

반환된 값은 NodeList로 표기 : 여러 개의 노드를 모아 놓은 것으로 배열과 비슷함

// NodeList의 인덱스 사용
document.QuerySelectorAll(".content")[1].style.backgroundColor = "yellow"

 

 

*getElementById() vs QuerySelector()

Element : 요소 노드까지만 접근 (웹 요소만 변경할 시 사용)

 

QuerySelector(), QuerySelectorAll()

: 요소노드, 텍스트 노드, 속성노드까지 접근 (웹 요소뿐 아니라 요소의 텍스트나 속성 변경, 새로운 노드 추가할 시 사용)

반응형