컴퓨터 프로그래밍/JQuery

html(), text(), val()

깝돌이 2020. 5. 28. 13:27

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>html(), text(), val()</title>
<style type="text/css">
</style>

<script
	src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
	//1.버튼 클릭하면 버튼의 타이틀을(value값) resultView 영역에다가 출력
	//: append()와 html이()은 기능 적인 면에서 똑같습니다. html은 덮어쓰고, append는 뒤이어 붙입니다.
	//: html사용한 1-1같은 경우에는 클릭 할때 마다  overwrite하기 때문에 그때마다 새로운 것으로 그 영역을 덮어씁니다.
	//  그래서 클릭을 하지만 실행이 안되는 것 처럼 보입니다.
	//: append()를 이용하면 클릭 할때마다 계속적으로 실행이 됩니다. 
	//1-1 html:
	$('#creatBtn').click(function() {
		//$('#resultView').html($(this).val());
		//$('#resultView').append($(this).val()+'<P>');									 
		//text(), html()안됨!! val()을 써야(form tag 들은)합니다. 
	});//click
	//1-2 append를 
	$('#creatBtn').click(function() {
		$('#resultView').append($(this).val()+'<P>');//append랑 html이랑 똑같은 데, 덮어쓰는 거냐 붙이는 거냐에 따라 다름									 
	
	});//click
	//$(this)에서 this는 #creatBtn중에서 클린된 것을 의미합니다. 
	//이것은 form field이기 text(), html()아닌 val()함수를 통해서 값을 받아 오게 됩니다.  
	
	//2. html()을  이용해서 append() 동일한 결과로 출력되도록합니다.
	$('#creatBtn').click(function() {
		var result = $('#resultView').html();
			//resultView에 있는 내용을 변수에 저장합니다. 
		$('#resultView').html(result+$(this).val()+"<p>");
			//기존에 resultView에 있던 내용에 클릭된 creatBtn의 value 값을 받아와 더해줍니다.
			//이렇게 되면, append해주는 것과 같은 기능을 하게 됩니다. 
	});//click
});
</script>
</head>
<body>
	<input type="button" value="버튼 클릭시 동적으로 문자열 생성" id="creatBtn">
	<select id="creatSel">
		<option>Encore Academy 남부지구</option>
		<option>Encore Academy 서초지구</option>
		<option>Encore Academy 판교지구</option>
		<option>Encore Academy 가산디지털지구</option>
		<option>Encore Academy 삼성지구</option>
	</select>
	<div id="resultView"></div>
</body>
</html>