다연이네

[days01] 버튼으로 전구 켜고끄기 본문

Web/JavaScript

[days01] 버튼으로 전구 켜고끄기

 다연  2020. 12. 9. 23:27
반응형

 

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
	<!-- 스타일변경/ 내용 변경/ [속성변경] -->
<!-- img#img_bulb[src="../images/pic_bulboff.gif"] -->
<img src="../images/pic_bulboff.gif" alt="" id="img_bulb" />
<!-- <img src="../images/pic_bulbon.gif" alt="" id="img_bulb2" /> -->
<!--이미지를 두개 겹쳐서 하나를 올리면 들왔다 나왔다 하는 것처럼 보임 -->
<br>
<button id="btn" onclick="bulb_OnOff()">Turn On</button>

<script>
function bulb_OnOff() {
	//img 요소의 src속성을 변경
	var img = document.getElementById("img_bulb");
	var btn =  document.getElementById("btn");
	if (btn.innerText =="Turn On") {
		img.src="../images/pic_bulbon.gif";
		btn.innerText="Turn Off";
	} else {
		img.src="../images/pic_bulboff.gif";
		btn.innerText="Turn On";
	}
}

</script>
</body>
</html>

2) boolean형 sw - 이렇게 변경 가능하다.

<script>
var sw = false;
function bulb_OnOff() {

	var img = document.getElementById("img_bulb");
	var btn =  document.getElementById("btn");
	
	
	 if (!sw) { //sw==false
		img.src="../images/pic_bulbon.gif";
		btn.innerText="Turn Off";
		sw =true;
	} else {
		img.src="../images/pic_bulboff.gif";
		btn.innerText="Turn On";
		sw=false;
	} 
}


</script>

3) 삼항연산자 - 이렇게도 변경 가능하다. 

<script>
var sw = false;
function bulb_OnOff() {

	var img = document.getElementById("img_bulb");
	var btn =  document.getElementById("btn");
	
	img.src = "../images/pic_bulb"+(sw?"off":"on")+".gif";
	btn.innerText = sw?"Turn On":"Turn Off";
	
	sw = !sw;
}


</script>

 

 

버튼을 2가지로 만들기

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>

<img src="../images/pic_bulboff.gif" alt="" id="img_bulb" />


<br>
<button id="btn1" onclick="bulb_On()">Turn On</button>
<button id="btn2" onclick="bulb_Off()">Turn Off</button>

<script>
function bulb_On() {
	//img 요소의 src속성을 변경
	var img = document.getElementById("img_bulb");	
	img.src="../images/pic_bulbon.gif";
		
		
		//불 켜고나면 on 버튼 비활성화
		document.getElementById("btn1").disabled="disabled";
		document.getElementById("btn2").disabled=false;
}

function bulb_Off() {
	//img 요소의 src속성을 변경
	var img = document.getElementById("img_bulb");
	img.src="../images/pic_bulboff.gif";

		
		document.getElementById("btn1").disabled=false;
		document.getElementById("btn2").disabled="disabled";
	}



</script>
</body>
</html>

 

 

jQuery로 바꾸기

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
	<!-- jQuery로 바꾸기 -->
<img src="../images/pic_bulboff.gif" alt="" id="img_bulb" />

<br>
<button id="btn">Turn On</button>

<script>

$(document).ready(function() {
	$("#btn").click(function() {
		//alert($("img").prop("src")); //절대경로 출력
		//alert($("img").attr("src")); //버전차이 //상대경로출력
		//뭐쓰던 상관 없음
		
	//	alert( $("img").attr("src").match("off.gif") ); //off.gif라는 문자열을 돌림
	//	alert( $("img").attr("src").match("on.gif") ); //매치하는 문자열 없으면 null 돌림
	
	
	if ( !$("img").attr("src").match("off.gif")  ) {
		//js는 null을 false 로인식해 ==null이 아니라 !붙혀도 됨
		//불 끄고 텍스트는 Turn Off로 해놓자
		//나중에는 replace 함수를 사용하면 됨(문자열 대체 함수)
		$("img").prop("src","../images/pic_bulboff.gif");
		$("#btn").text("Turn On");
	} else {
		$("img").prop("src","../images/pic_bulbon.gif");
		$("#btn").text("Turn Off");
	}
	
	});//click
});//ready
	
</script>
</body>
</html>
반응형
Comments