<!DOCTYPE html><htmllang="ko"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1"><title>부트스트랩 프레임워크</title><!-- 부트스트랩 --><linkhref="./resource/bootstrap-3.3.2-dist/css/bootstrap.min.css"rel="stylesheet"><linkhref="./resource/bootstrap-3.3.2-dist/css/bootstrap-theme.min.css"rel="stylesheet"><scriptsrc="./resource/js/jquery-3.4.1.min.js"></script><!-- IE8 에서 HTML5 요소와 미디어 쿼리를 위한 HTML5 shim 와 Respond.js --><!-- WARNING: Respond.js 는 당신이 file:// 을 통해 페이지를 볼 때는 동작하지 않습니다. --><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body><h1>그리드 시스템</h1><div>
<사용방법> <br>
1) .container-fluid 혹은 .container 상위 태그에 클래스 지정<br>
2) 그 하위에 .row 클래스 지정 (clear css 속성 동일 - float 해제)<br>
3) 그리드 시스템 클래스 지정<br>
- 그리드 시스템의 클래스 처음 시작은 .col 클래스로 시작된다.<br>
- 디바이스 크기를 지정하는 접두사가 붙는다.<br>
예) .col-xs-*, .col-sm-*, .col-md-*, .col-lg-* <br>
- 디바이스 크기 접두사 뒤에 12열 기준으로 열정렬 숫자를 나열한다.<br>
예) .col-xs-2, .col-sm-3, .col-md-5, .col-lg-1<br>
4) row 클래스는 1행 기준점 마다 지정해야한다.<br>
5) 디바이스 크기를 지정하는 접두사<br>
- xs : 최소 사이즈 모바일<br>
- sm : 탭 <br>
- md : 데스크탑 중간<br>
- lg : 데스크탑 최대<br>
6) 그리드 시스템 클래스는 디바이스 크기 별로 중복 적용이 가능하다.<br>
예) (1개의 태그에 클래스 적용) class="col-lg-6 col-md-4 col-xs-12"<br>
: lg 크기일 경우 6열로 정렬, md 크기일 경우 4열로 정렬, xs 크기일 경우 12열로 정렬
</div><h1>반응형 유틸리티</h1><div>
디바이스 크기에 따라 그리드 시스템 적용 대상을 보이거나 안보이게 할 수 있다.<br>
(작은 기기에서 안보여야 할 영역을 감출 수 있다.)
</div><h1>그리드 시스템 적용</h1><divclass="container-fluid"><divclass="row"><divclass="col-lg-3 col-md-6 col-xs-12"><!-- sm없을 경우 md사이즈로 적용됨 --><pclass="bg-danger">1</p></div><divclass="col-lg-3 col-md-6 col-xs-12"><pclass="bg-warning">2</p></div><divclass="col-lg-3 col-md-6 col-xs-12 hidden-xs hidden-sm"><pclass="bg-success">3</p></div><divclass="col-lg-3 col-md-6 col-xs-12 hidden-xs"><pclass="bg-info">4</p></div></div></div><scriptsrc="./resource/bootstrap-3.3.2-dist/js/bootstrap.min.js"></script></body></html>
<!DOCTYPE html><htmllang="ko"><head><metacharset="utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1"><!-- viewport :: 반응형 웹이 되도록 하는 중요 키워드--><!-- 위 3개의 메타 태그는 *반드시* head 태그의 처음에 와야합니다; 어떤 다른 콘텐츠들은 반드시 이 태그들 *다음에* 와야 합니다 --><title>부트스트랩 101 템플릿</title><!-- 부트스트랩 --><linkhref="css/bootstrap.min.css"rel="stylesheet"><!-- IE8 에서 HTML5 요소와 미디어 쿼리를 위한 HTML5 shim 와 Respond.js --><!-- WARNING: Respond.js 는 당신이 file:// 을 통해 페이지를 볼 때는 동작하지 않습니다. --><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body><h1>Hello, world!</h1><!-- jQuery (부트스트랩의 자바스크립트 플러그인을 위해 필요합니다) --><scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script><!-- 모든 컴파일된 플러그인을 포함합니다 (아래), 원하지 않는다면 필요한 각각의 파일을 포함하세요 --><scriptsrc="js/bootstrap.min.js"></script></body></html>
<!DOCTYPE html><htmllang="ko"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1"><title>부트스트랩 프레임워크</title><!-- 부트스트랩 --><linkhref="./resource/bootstrap-3.3.2-dist/css/bootstrap.min.css"rel="stylesheet"><linkhref="./resource/bootstrap-3.3.2-dist/css/bootstrap-theme.min.css"rel="stylesheet"><scriptsrc="./resource/js/jquery-3.4.1.min.js"></script><!-- IE8 에서 HTML5 요소와 미디어 쿼리를 위한 HTML5 shim 와 Respond.js --><!-- WARNING: Respond.js 는 당신이 file:// 을 통해 페이지를 볼 때는 동작하지 않습니다. --><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body><h1>아이콘</h1><div>
콤포넌트에 소개된 아이콘의 클래스를 유지하면 아이콘이 출력된다.
</div><buttontype="button"class="btn btn-info" ><spanclass="glyphicon glyphicon-asterisk" ></span></button><ahref="http://naver.com/"class="btn btn-success" ><spanclass="glyphicon glyphicon-tower" ></span></a><iclass="glyphicon glyphicon-leaf"></i><h1>드롭다운</h1><divclass="dropdown"><buttonclass="btn btn-warning dropdown-toggle"type="button"id="dropdownMenu1"data-toggle="dropdown">
Dropdown
<spanclass="caret"></span></button><ulclass="dropdown-menu"><lirole="presentation"><ahref="#">유니스야 </a></li><lirole="presentation"class="divider"></li><lirole="presentation"><ahref="#">카레 먹고싶어</a></li><lirole="presentation"class="divider"></li><lirole="presentation"><ahref="#">다은이</a></li><lirole="presentation"><ahref="#">바부..</a></li></ul></div><h1>버튼그룹</h1><divclass="btn-group"><buttontype="button"class="btn btn-danger">Left</button><buttontype="button"class="btn btn-success">Middle</button><buttontype="button"class="btn btn-info">Right</button></div><divclass="btn-group btn-group-lg"><buttontype="button"class="btn btn-danger">Left</button><buttontype="button"class="btn btn-success">Middle</button><buttontype="button"class="btn btn-info">Right</button></div><h1>크기를 알리는 클래스 접두사</h1><div>
대략적으로 크기를 지정할 수 있는 클래스 옵션이 있으며, 대표 클래스 다음 대표클래스-* 형태로 클래스를 지정하여 크기를 조절할 수 있다.
<br>
예) btn btn-lg
<br>
크기 종류
<br>
대표클래스-xs < 대표클래스-sm < 대표클래스-md < 대표클래스-lg
</div><buttontype="button"class="btn btn-info btn-xs" ><spanclass="glyphicon glyphicon-asterisk" ></span></button><buttontype="button"class="btn btn-info btn-sm" ><spanclass="glyphicon glyphicon-asterisk" ></span></button><buttontype="button"class="btn btn-info btn-md" ><spanclass="glyphicon glyphicon-asterisk" ></span></button><buttontype="button"class="btn btn-info btn-lg" ><spanclass="glyphicon glyphicon-asterisk" ></span></button><h1>양쪽 정렬 버튼</h1><div>부모의 태그 가로 사이즈 100% 지정하여 정렬</div><divclass="btn-group btn-group-justified"role="group"aria-label="..."><divclass="btn-group"role="group"><buttontype="button"class="btn btn-default">Left</button></div><divclass="btn-group"role="group"><buttontype="button"class="btn btn-default">Middle</button></div><divclass="btn-group"role="group"><buttontype="button"class="btn btn-default">Right</button></div></div><h1>색상을 표기하는 클래스 접두사</h1><div>
색상을 표기할 때 '대표클래스-*' 형태로 사용 가능하며 대략적으로 테마별 옵션은 아래의 6가지 옵션으로 지정하여 쓰도록 하고 있다.
<br>
대표클래스-default<br>
대표클래스-danger<br>
대표클래스-warning<br>
대표클래스-success<br>
대표클래스-info<br>
대표클래스-primary<br></div><buttontype="button"class="btn btn-default">default</button><buttontype="button"class="btn btn-danger">danger</button><buttontype="button"class="btn btn-warning">warning</button><buttontype="button"class="btn btn-success">success</button><buttontype="button"class="btn btn-info">info</button><buttontype="button"class="btn btn-primary">primary</button><h1>폼 태그 기본 클래스</h1><div>기본적으로 폼태그에 들어가는 클래스가 있다.<br>
form-control : 부모의 가로 사이즈를 기준으로 100% 정렬
</div><inputtype="text"class="form-control"><selectclass="form-control"><option> :: 선택 :: </option></select><textareaclass="form-control"></textarea><h1>입력 그룹</h1><divclass="input-group"><spanclass="input-group-addon"id="basic-addon1">@</span><inputtype="text"class="form-control"placeholder="Username"></div><divclass="input-group"><spanclass="input-group-addon"id="basic-addon1"><inputtype="checkbox"> 체크하기
</span><inputtype="text"class="form-control"placeholder="Username"></div><divclass="input-group"><inputtype="text"class="form-control"placeholder="Username"><spanclass="input-group-btn"><buttontype="button"class="btn btn-warning">버튼</button></span></div><h1>active 클래스</h1><div>
active는 현재 위치 혹은 강조를 표기하는(활성화) 클래스이다.
</div><h1>탭</h1><ulclass="nav nav-tabs"><liclass="active"><ahref="#">Home</a></li><liclass="active"><ahref="#">Profile</a></li><li><ahref="#">Messages</a></li></ul><h1>네비게이션 바</h1><div>
- nav 태그에 navbar 대표 클래스가 있어야 하며, navbar-* 접두사로 색상 변경이 가능하다.
<br>
- navbar-header 클래스는 브랜드(로고)와 반응형에 관련된 메뉴 아이콘의 요소가 들어있다.
<br>
- collapse navbar-collapse 클래스는 실제 보이는 메뉴를 나열할 수 있다.
</div><navclass="navbar navbar-inverse"><divclass="container-fluid"><!-- Brand and toggle get grouped for better mobile display --><divclass="navbar-header"><buttontype="button"class="navbar-toggle collapsed"data-toggle="collapse"data-target="#bs-navbar"><spanclass="sr-only">Toggle navigation</span><spanclass="icon-bar"></span><spanclass="icon-bar"></span><spanclass="icon-bar"></span></button><aclass="navbar-brand"href="#">Brand</a></div><!-- Collect the nav links, forms, and other content for toggling --><divclass="collapse navbar-collapse"id="bs-navbar"><ulclass="nav navbar-nav navbar-left"><li><ahref="#">Link</a></li><li><ahref="#">Zelda</a></li><li><ahref="#">WolfLink</a></li></ul></div><!-- /.navbar-collapse --></div><!-- /.container-fluid --></nav><h1>data-target 속성</h1><div>
버튼 태그에 data-target 속성이 존재할 경우 이벤트를 발동시킬 대상을 말하는 것이며, data-target에 명시된 대상은 존재해야 한다.
<br>
ex) data-target="선택자" : 선택자와 일치하는 타겟이 있어야 함.
</div><h1>라벨</h1><div>
인라인 속성 태그를 기준으로 사용 가능하며, 주로 span 태그에 적용한다.
<br>
라벨에도 색상기준 접두사로 옵션을 붙여 사용할 수 있다.
<br>
대표 클래스 : label
<br>
색상옵션 : label-*
<br>
* : default, danger, warning, success, info, primary
</div><spanclass="label label-default">default</span><spanclass="label label-danger">danger</span><spanclass="label label-warning">warning</span><spanclass="label label-success">success</span><spanclass="label label-info">info</span><spanclass="label label-primary">primary</span><h1>뱃지</h1><spanclass="badge badge-default">default</span><h1>alert</h1><div>
알림을 텍스트로 표현할 때<br>
대표 클래스 alert <br>
옵션 클래스 alert-*<br>
* : danger, warning, success, info<br><br></div><spanclass="alert alert-danger">danger</span><spanclass="alert alert-warning">warning</span><spanclass="alert alert-success">success</span><spanclass="alert alert-info">info</span><h1>패널</h1><div>
대표 클래스 panel <br>
옵션 클래스 panel-* <br>
* : default, danger, warning, success, info, primary
panel 클래스의 하위 태그<br>
panel-heading, panel-body, panel-footer 클래스를 가진 태그로 이루어져 있다.<br></div><divclass = "panel panel-default"><divclass="panel-heading">heading</div><divclass="panel-body">body</div><divclass="panel-footer">footer</div></div><divclass = "panel panel-danger"><divclass="panel-heading">heading</div><divclass="panel-body">body</div></div><divclass = "panel panel-warning"><divclass="panel-heading">heading</div><divclass="panel-body">body</div></div><divclass = "panel panel-success"><divclass="panel-heading">heading</div><divclass="panel-body">body</div></div><divclass = "panel panel-info"><divclass="panel-heading">heading</div><divclass="panel-body">body</div></div><divclass = "panel panel-primary"><divclass="panel-heading">heading</div><divclass="panel-body">body</div></div><h1>모달</h1><div>
레이어 팝업 - 레이아웃을 설정하고 css 조정으로 팝업 효과가 보이도록 만드는 콤포넌트
</div><!-- Button trigger modal --><buttontype="button"class="btn btn-info btn-lg"data-toggle="modal"data-target="#myModal">
Launch demo modal
</button><!-- Modal --><divclass="modal fade"id="myModal"><divclass="modal-dialog"><divclass="modal-content"><divclass="modal-header"><buttontype="button"class="close"data-dismiss="modal"aria-label="Close"><spanaria-hidden="true">×</span></button><h4class="modal-title"id="myModalLabel">Modal title</h4></div><divclass="modal-body">
...
</div><divclass="modal-footer"><buttontype="button"class="btn btn-default"data-dismiss="modal">Close</button><buttontype="button"class="btn btn-info">Save changes</button></div></div></div></div><h1>pull-left, pull-right</h1><div>
인라인 요소 처럼 텍스트 등을 정렬할 때 사용
</div><h1>
pull-left테스트
<smallclass="pull-left">pull-left</small></h1><h1>
pull-right테스트
<smallclass="pull-right">pull-right</small></h1><h1></h1><scriptsrc="./resource/bootstrap-3.3.2-dist/js/bootstrap.min.js"></script></body></html>
<!DOCTYPE html><html><head><metacharset="UTF-8"><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">var request = $.ajax({
url: "script.php", //통신 할 urlmethod: "POST", // 통신할 메서드 타입data: { id : '' }, //전송할 데이터dataType: "html"//전송받은 데이터를 변화시킬 컨텐츠 타입/*
tataType
html(text/html), sjon (application/jason),xml (text/xml), text (text/palin)
*/
});
//정상적으로 통신이 완료되었을 경우 실행되는 메서드//인수값인 함수를 실행시켜준다 (콜백함수)
request.done(function( data ) {
consolo.log.( data );
});
//에러 발생시 실행되는 메서드
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
/*
웹(브라우저)에서 표현할 수 있는 콘텐츠 타입
1) text/html
html을 표현하는 타입
2) text/xml
xml을 표현하는 타입
(외부 자원 관리 데이터로 저장 혹은 외부와 통신하기 위한 타입)
3) text/plain
텍스트를 표기하는 타입
4) application/json
json을 표현하는 타입
포맷터 : {"키" : "값"} 형태로 이루어진 문자열
*/</script><title>콘텐츠 삽입</title></head><body></body></html>
Ajax Html Call
<!DOCTYPE html><html><head><metacharset="UTF-8"><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">
$(function() {
$('#ajaxCall').click(function() {
var num = $('#num').val()
var request = $.ajax({
url: "ajaxHtmlCall.jsp", //통신 할 urlmethod: "POST", // 통신할 메서드 타입data: { len : num }, //전송할 데이터dataType: "html"//전송받은 데이터를 변화시킬 컨텐츠 타입
});
request.done(function(data) {
console.log(data);
if(data != undefined && data != ''){
$('#ajaxResult').html(data);
}
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
});
})
</script><title>Insert title here</title></head><body><inputtype="number"id="num"placeholder="출력갯수"><buttontype="button"id="ajaxCall">호출</button><divid="ajaxResult">호출 버튼을 클릭하세요</div></body></html>
ajaxHtmlCall.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList" %>
<%
//len 키 값으로 ajax02.html 에서 값 전송하여 받기
String len = request.getParameter("len");
int num = 0;
//len 값이 null과 공백이 아니라면
if(len != null && !"".equals(len.trim())){ // nullPointException을 피하기 위해 변수를 메서드 안에서 쓰기
num = Integer.parseInt(len);
}
%>
<!DOCTYPE html><style>td{border : 1px solid #000;}
</style><table><tbody>
<%
for(int i = 0 ; i < num ; i ++){
%>
<tr><td>안녕하세요 <%= i %></td></tr>
<%
}
%>
</tbody></table>
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>객체 편집 메서드</title><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">/*
실습1. #add1 선택시 addList 객체를 조회하여 1차 지역과 일치하는 2차 지역목록을 #add2에 출력하여라.
*///실제 데이터베이스에서 조회한다는 가정 하에 데이터를 정리var addList = {
'전주' : ['덕진구', '완산구']
,'군산' : ['개사길 ', '거사길']
,'익산' : ['고봉로', '고현로']
}
//addList['']/* $(function() {
$('#add1').change(function() {
var a = $(this).val();
$('#add2').find('option').remove();
$('#add2').append('<option value=""> :: 지역을 선택해 주세요. :: </option>');
for( var i = 0; i <addList[a].length ; i++){
$('#add2').append('<option value="'+addList[a][i]+'">'+addList[a][i]+'</option>');
}
})
})
*/
$(function() {
$('#add1').change(function() {
var add = $(this).val();
var addArray = addList[add];
var html = '<option value=""> :: 2차 지역을 선택해 주세요. :: </option>';
for( var i = 0; i < addArray.length ; i++){
html += '<option value="'+ addArray[i] +'">'+ addArray[i]+'</option>';
}
$('#add2').html(html);
})
})
</script></head><body><selectid="add1"><optionvalue=""> :: 지역 선택 :: </option><optionvalue="전주"> 전주 </option><optionvalue="군산"> 군산 </option><optionvalue="익산"> 익산 </option></select><selectid="add2"><optionvalue=""> :: 지역을 선택해 주세요. :: </option></select></body></html>
객체 편집 메서드 실습 2
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>객체 편집 메서드 2</title><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">/*
실습2. .choice1 클릭시 choice2List 객체의 키와 일치하는 교수를 #choice2Wrap에 체크박스로 뿌려주고
#choice2Wrap 내에 생성된 교수를 클릭시 choice3List 객체를 조회하여
해당 교수가 담당하는 교과목을 #choice3Wrap에 체크박스로 뿌려주시오.
*/
$(function() {
$('.choice1').click(function () {
console.log($(this).val(),"<--클릭선택value");
var val = $(this).val();
var array = choice2List[val];
console.log( array ,"<--교수");
var html = '';
for(var i = 0 ; i <array.length ; i++){
console.log(array[i]);
html += '<label><input type="checkbox" class="choice2" name="choice2" value ="' +array[i]+'">'+array[i]+'</label>'
}
$('#choice2Wrap').html(html);
})
})
//.choice2 동적 바인딩
$(document).on('click','.choice2', function(){
var html = '';
$('.choice2:checked').each(function() {
var choice = $(this).val();
console.log(choice, '교수선택')
var array = choice3List[choice];
for(var i=0; i <array.length; i++){
html += '<label><input type="checkbox" class="choice3" name="choice3" value ="' +array[i]+'">'+array[i]+'</label>'
}
})
$('#choice3Wrap').html(html);
})
var choice2List = {
'9' : ['9급 홍길동', '9급 고길동']
,'7' : ['7급 이순신', '7급 유관순']
}
var choice3List = {
'9급 홍길동' : ['국어', '영어']
,'9급 고길동' : ['국사', '토익']
,'7급 이순신' : ['과학', '국사']
,'7급 유관순' : ['수학', '일어']
}
</script></head><body><div><h1>급수 선택</h1><label><inputtype="radio"name="choice1"class="choice1"value="9"> 9급
</label><label><inputtype="radio"name="choice1"class="choice1"value="7"> 7급
</label></div><div><h1>교수 선택</h1><divid="choice2Wrap"></div></div><div><h1>과목 선택</h1><divid="choice3Wrap"></div></div></body></html>
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>제이쿼리 객체 탐색기 및 탐색기 메서드 활용</title><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">/*
실습1. 아래의 html 객체들이 있다.
#sum 버튼 클릭시 .num의 값을 가지고와 합산하고
그 결과값을 #text에 삽입하여라.
(.del 클릭시 .num-wrap 가 제거 되어야함)
-- 추가 설명 메서드
객체.val() <-- value라는 속성을 가진 html 객체의 값을 가지고 오거나 삽입한다.
객체.text() <-- 선택된 객체의 텍스트 요소를 가지고 오거나 삽입한다.
*/
$(function(){
//input box 에 숫자만 입력되도록 하는 jquery
$('input').keyup(function(){
var inputVal = $(this).val();
$(this).val(inputVal.replace(/[^0-9]/gi,'')); //정규식
})
$('#sum').click(function(){
var sig = 0;
$('.num').each(function(){
if($(this).val() == ''){
}else{
sig += parseInt($(this).val());
/* Number함수 : 값이 없을 경우 0 반환
parseInt : 값이 없을 경우 NaN, undefined 반환 */
}
})
$('#text').text(sig);
})
$('.del').click(function(){
$(this).parents('.num-wrap').remove();
})
})
</script></head><body><divclass="num-wrap"><inputtype="text"class="num"><buttontype="button"class="del">제거</button></div><divclass="num-wrap"><inputtype="text"class="num"><buttontype="button"class="del">제거</button></div><divclass="num-wrap"><inputtype="text"class="num"><buttontype="button"class="del">제거</button></div><h1>
계산결과
</h1><divid="text"> 계산하기를 클릭해주세요.</div><buttontype="button"id="sum">계산하기</button></body></html>
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>Insert title here</title><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">
/*
<속성 조작 메서드>
: 선택된 객체의 속성값을 가지고 오거나 변경이 가능한 메서드
<Parsing> ((cf. 형변환))
: 서로 다른 데이터를 변환하는 작업
- parser : 서로 다른 테이터를 변환하는 대상 혹은 도구 (플러그인, api(메서드))
1) $('선택자').html()
: 선택된 객체의 html요소를 가지고 오거나 삽입
ex) $('body').html(); 선택된 객체의 자식 html 요소 가지고 오기
$('body').html('<h1>안녕하세요</h1>'); 선택된 객체에 값 삽입
2) $('선택자').text()
: 선택된 객체의 하위 요소의 text를 가지고 오거나 삽입
ex) $('body').text(); body의 하위 텍스트 전체 가지고 오기
$('body').text('안녕하세요'); body의 하위 텍스트 전체 가지고 오기
*** 3) $('선택자').attr()
: 선택된 객체의 속성을 가지고 오거나 삽입한다.
웹표준에 존재하지 않는 속성도 삽입하거나 가지고 올 수 있다.
ex) $('body').attr('myName'); body에 myName 이라는 속성의 값을 가지고 온다.
$('body').attr('myName', '홍길동'); body에 myName 이라는 속성을 생성하고 속성 myName의 값으로 홍길동을 삽입한다.
4) $('선택자').removeAttr('속성명')
: 선택된 객체의 인수값에 해당되는 속성을 제거한다.
ex) $('body').removeAttr('myName'); body에 myName이라는 속성을 제거
5) $('선택자').prop()
: 선택된 객체의 상태속성을 확인하거나 변경한다. ('checked', 'selected', 'hidden' 등)
ex) $('body').prop('hidden', true); body 태그의 상태를 hidden으로 변경
$('body').prop('hidden', false); body 태그의 상태를 hidden 해제
$('body').prop('hidden'); body 태그의 상태 중 hidden의 상태값을 true / false로 가지고 온다.
6) $('선택자').val()
: 선택된 객체의 value 속성값을 가지고 오거나 변경한다.
ex) $('input').val(); input 태그의 value속성의 값을 가지고 온다.
$('input').val('홍길동'); input 태그의 value속성의 값을 '홍길동'으로 변경한다.
7) $('선택자').css()
: 선택된 객체의 css 속성을 적용 혹은 값을 가지고 온다.
ex) $('body').css('border', '1px solid #ff0000'); body에 border라는 css속성 1px solid #ff0099을 적용
$('body').css('border'); body에 적용된 css속성 border 값을 가지고 오기
ex2) 다중으로 css 속성 적용하기
$('body').css({
'border':'1px solid #ff0000',
'padding':'5px'
})
8) $('선택자').addClass('클래스명')
: 선택된 객체에 클래스를 추가 삽입
ex) $('body').addClass('syntaxhighlighter'); body에 클래스 속성의 값에 syntaxhighlighter를 추가한다.
9) $('선택자').removeClass('클래스명')
: 선택된 객체에 인수값에 해당하는 클래스를 제거
ex) $('body').removeClass('syntaxhighlighter'); body의 클래스 속성에 syntaxhighlighter 값이 있다면 syntaxhighlighter 제거
10) $('선택자').('클래스명')
:
ex)
*/
</script></head><body></body></html>
속성 조작 메서드 실습 css, addClass, removeClass
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>속성 조작 메서드 실습 css, addClass, removeClass</title><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">
$(function(){
$('#bodyBorderChange').click(function(){
if($('body').is('.r-border')){
$('body').removeClass('r-border').addClass('b-border');
} else {
$('body').removeClass('b-border').addClass('r-border');
}
})
})
</script><styletype="text/css">.r-border{
border: 1px solid #ff0000;
}
.b-border{
border: 1px solid #0000ff;
}
</style></head><bodyclass="r-border"><!--
실습3. #bodyBorderChange 클릭시 .r-border와 .b-border가 토글되게 하라.
addClass, removeClass, is, attr
(is 메서드는 상태속성 및 아이디, 클래스를 확인할 수 있다. ex) $('body').is('.r-border'); >> true/false )
--><buttontype="button"id="bodyBorderChange">바디 보더 변경</button></body></html>
제이쿼리 css 메서드 활용 실습
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>제이쿼리 css 메서드 활용</title><styletype="text/css">body{padding: 0;}
ul{padding: 10px; margin: 0;}
ul, li{list-style-type: none;}
li{width: 100px; height: 100px; border: 1px dashed #000; padding: 1px; margin: 0;}
</style><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">/*
실습4. #alignStart 버튼 클릭시 li테그를 왼쪽 정렬되게 하여라.
(row 형태로 존재하는 li를 col 형태로 재정렬)
*/
$(function(){
$('#alignStart').click(function(){
$('li').css('float','left')
})
})
</script></head><body><ul><li>1</li><li>2</li><li>3</li><li>4</li></ul><buttontype="button"id="alignStart">정렬하기</button></body></html>
객체 편집 메서드
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>객체 편집 메서드</title><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">/*
<객체 편집 메서드>
: 선택한 객체의 옵션 (메서드에 위치 옵션 포함) 위치에 html 요소를 삽입
1) $('선택자').before('html 요소')
: 선택한 대상의 이전 위치에 html 삽입
2) $('선택자').after('html 요소')
: 선택한 대상의 이전 위치에 html 삽입
*** 3) $('선택자').append('html 요소')
: 선택한 대상의 자식요소 제일 끝에 html 삽입
*** 4) $('선택자').prepend('html 요소')
: 선택한 대상의 자식요소 제일 처음에 html 삽입
5) $('선택자').clone()
: 선택한 대상을 복제한다.
*/
$(function(){
$('#beforeAfterBtn').click(function(){
$('#center').before('<div>이전</div>')
$('#center').after('<div>다음</div>')
})
$('#appendBtn').click(function(){
var len = $('#addTr').find('tr').length;
$('#addTr').append('<tr><td> 마지막' + len + ' </td></tr>')
})
$('#prependBtn').click(function(){
var len = $('#addTr').find('tr').length;
$('#addTr').prepend('<tr><td> 처음' + len + ' </td></tr>')
})
$('#cloneBtn').click(function(){
//clone 변수에 #cloneTarget을 복제한다.var clone = $('#cloneTarget').clone();
console.log(clone,'<<clone');
//clone() 메서드로 복제시 clone변수에 담긴 객체를 조회할 수 있다.
clone.find('h2').text('안녕하세요2');
console.log(clone.html(),'<<clone.html()')
$('#cloneCopy').html(clone.html());
})
})
</script></head><body><h1> before after </h1><divid="center">
중앙
</div><buttontype="button"id="beforeAfterBtn">다음과 이전 html 삽입</button><h1> append prepend</h1><table><tbodyid="addTr"><tr><td> 중앙 </td></tr></tbody></table><buttontype="button"id="appendBtn">append</button><buttontype="button"id="prependBtn">prepend</button><divid="cloneTarget"><h2>안녕하세요.</h2></div><divid="cloneCopy"></div><buttontype="button"id="cloneBtn">복제</button></body></html>
동적바인딩
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>동적 바인딩</title><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">/*
<동적 바인딩>
: html 실행 순서에 따라 dom 객체가 생성되기 때문에 이벤트 실행 완료 이후에 생성되는 html 에는 이벤트를 걸 수 없다.
때문에 동적으로 이벤트를 걸거나 객체 생성시에 이벤트를 걸어야 한다.
*/
$(document).on('click','.add',function() {
var clone = $(this).parent().clone();
$('body').append(clone);
})
$(document).on('click','.del',function() {
$(this).parent().remove();
})
</script></head><body><divclass="btn-wrap"><buttontype="button"class="add">생성</button><buttontype="button"class="del">제거</button></div></body></html>
객체 조작 메서드 활용 실습
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>객체 조작 메서드 활용 실습</title><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">/*
실습5. .file-add 클릭시 파일을 더 추가할 수 있는 폼을 추가하고 .file-del 클릭시 파일을 첨부할 수 있는 폼을 제거하여라.
파일 추가 최대 갯수는 5개이고 1개 최소 1개는 존재해야한다.
*/
$(document).on('click','.file-add',function(){
console.log($('.file-add').parent().length)
if($('.file-add').parent().length <= 5){
var clone = $(this).parent().clone();
$('#file-warp').append(clone);
}
})
$(document).on('click','.file-del',function(){
console.log($('.file-del').parent().length)
if($('.file-del').parent().length > 1){
$(this).parent().remove();
}
})
</script></head><body><divid="file-warp"><divclass="file-group"><inputtype="file"><buttontype="button"class="file-add">파일 추가</button><buttontype="button"class="file-del">파일 제거</button></div></div></body></html>
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>객체 조작 메서드 활용 실습</title><scripttype="text/javascript"src="./resource/js/jquery-3.4.1.min.js"></script><scripttype="text/javascript">/*
실습5. .file-add 클릭시 파일을 더 추가할 수 있는 폼을 추가하고 .file-del 클릭시 파일을 첨부할 수 있는 폼을 제거하여라.
파일 추가 최대 갯수는 5개이고 1개 최소 1개는 존재해야한다.
*/
$(document).on('click','.file-add',function(){
var len = $('.file-group').length;
if(len<5){
var clone = $(this).parent().clone();
clone.find('input').val('');
$('#file-warp').append(clone);
} else {
alert('더 이상 추가할 수 없습니다.')
}
})
$(document).on('click','.file-del',function(){
var len = $('.file-group').length;
if(len>1){
$(this).parent().remove();
} else {
alert('더 이상 삭제할 수 없습니다.')
}
})
</script></head><body><divid="file-warp"><divclass="file-group"><inputtype="file"><buttontype="button"class="file-add">파일 추가</button><buttontype="button"class="file-del">파일 제거</button></div></div></body></html>