22.06.13
자바 스크립트 JQuery배우기.

$( )안에 css 선택자 넣어주면 된다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
//헤드태그 안에 JQuery추가
<script src="lib/jquery-3.6.0.min.js"></script>
</head>
<body>
<input type="text" id="apple" value="사과">
<input type="text" class="melon" value="멜론">
<input type="hidden" value="망고">
<script>
//ID로 가져오기
const $a1 = document.getElementById('apple');
const $a2 = $('#apple'); //JQuery
console.log($a1);
console.log($a2);
//class로 가져오기(값)
const b1 = document.querySelector('.melon').value;
const b2 = $('.melon').val();//JQuery
console.log(b1);
console.log(b2);
//속성값으로 가져오기(값)
const c1 = document.querySelector('input[type=hidden]').value;
const c2 = $('input[type=hidden]').val();//JQuery
console.log(c1);
console.log(c2);
</script>
</body>
//attr() 매개값 1개 값 가져오기,매개값 2개 변경
<head>
<script src="lib/jquery-3.6.0.min.js"></script>
</head>
<body>
<input type="text" id="test1" readonly>
<div id="test2">테스트2</div>
<div id="test3">테스트3</div>
<img src="#" alt="test" class="test4">
<button id="btn" class="btn btn-default">클래스 조작</button>
<script>
//속성 가져오기
const a1 = document.getElementById('test1').getAttribute('id');
const a2 = $('#test1').attr('id'); //attr('속성이름')은 요소의 속성을 확인.
console.log(a1);
console.log(a2);
//속성 값 변경
// document.getElementById('test1').setAttribute('id', 'melon');
$('#test1').attr('id', 'melon');
//attr() 매개값 1개 값 가져오기,매개값 2개 변경
//속성 여러개 추가 및 변경 가능. 배열 형태로 작성 { }
$('.test4').attr({
src: 'profile.png',
width: 100,
height: 100,
alt: 'hello world'
});
//html 삽입 함수
document.getElementById('test2').innerHTML = '<a href="#">lll</a>';
$('#test2').html('<a href="#">lll</a>');
//css 속성 추가 및 변경
document.getElementById('test3').style.background = 'green';
$('#test3').css('background', 'blue');
//class 추가
document.getElementById('btn').classList.add('myBtn');
$('.btn').addClass('myBtn2');
//class 삭제
document.getElementById('btn').classList.remove('myBtn');
$('.btn').removeClass('myBtn2');
//toggle(존재한다면 삭제, 존재하지 않는다면 추가)
$('.btn').toggleClass('btn');
</script>
</body>
<body>
<button type="button" id="btn">등록</button>
<script>
//페이지가 모두 로딩된 후에 실행하는 함수
//페이지 내에서 딱 1번만 사용이 가능하다.
/* window.onload = function() {
const $btn = document.getElementById('btn');
$btn.onclick = function() {
alert('버튼 클릭됨');
}
}*/
//JS의 윈도우 load 이벤트 구문을 대체하는 방법1. 잘안씀
/*$(window).on('load', function() {
const $btn = document.getElementById('btn');
$btn.onclick = function() {
alert('버튼 클릭됨');
}
}); */
//아래 두 코드를 자주 사용함.
//JS의 윈도우 load이벤트를 대체하는 방법2.
//페이지에서 제이쿼리 문법을 시작할 때 주로 많이 사용한다.
//여러 번 사용도 가능하다.
$(document).ready(function() {
$('#btn').click(function() {
alert('제이쿼리의 load');
});
});
//제이쿼리를 시작할 때 사용하는 또다른 문법(제일 간단함.)
$(function() {
//제이쿼리 문법을 작성..
})
</script>
</body>
<body>
<button id="btn">이벤트 등록</button>
<input type="text" id="tag">
<script>
//스크립트 이벤트 등록
window.onload = function() {
const $btn = document.getElementById('btn');
$btn.onclick = function() {
alert('이벤트 등록!');
}
const $tag = document.getElementById('tag');
$tag.onchange = function() {
alert('변경 이벤트 등록!')
}
}
//제이쿼리 이벤트 등록
//선택자 뒤에 on이 빠진 트리거 작성하고 실행할 함수를 매개변수로 전달.
$(document).ready(function() {
$('#btn').click(function() {
alert('이벤트 등록!');
});
$('#tag').keyup(function() {
alert('키 입력 이벤트 등록');
});
});
</script>
</body>
<body>
<ul id="test">
<li id="tag">태그1</li>
<li id="tag">태그2</li>
<li id="tag">태그3</li>
</ul>
<script>
//li태그에 모두 동일한 이벤트를 등록하기.
//부모태그에 이벤트를 등록하고 onclick시
//전달되는 이벤트 객체를 이용해서 확인하는 방식.
const $test = document.getElementById('test');
$test.addEventListener('click', function(e) {
if(!e.target.matches('#test > li')){
return;
}
// if(!e.target.tagName === 'li'){
// return;
// }
console.log(e.target.textContent);
});
//on(이벤트종류, 위임할 요소, 이벤트기능)
$('#test').on('click', 'li', function() {
//$(this)는 이벤트가 발생한 주체(태그,요소)를 의미.
console.log($(this).html());
});
</script>
<div id="box">
</div>
<script>
$(function() {
//on함수는 실행 순서에 영향을 받지 않고
//이벤트가 발생하는 순간 on함수에 지정한 이벤트를 발동시킨다.
//이는 실행 순서와 상관없는 비동기 통신을 진행할 때 유리하다.
$('#box').on('click', 'a', function(e) {
e.preventDefault();//태그 기능막기
alert('실행되나요??');
});
let str = '';
str += '<a href="#">태그1</a><br>';
str += '<a href="#">태그2</a><br>';
str += '<a href="#">태그3</a><br>';
$('#box').html(str);
});
</script>
</body>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="lib/jquery-3.6.0.min.js"></script>
<style>
.center{
text-align: center;
}
.content{
border: 1px solid #777;
}
.content,
.content .left,
.content .right{
width: 50%;
margin: 0 auto;
box-sizing: border-box;
padding: 5px;
}
.content .left,
.content .right{
float: left;
}
.left .inner,
.right .inner{
border: 1px solid #777;
height: 300px;
}
img{
width: 100%;
height: 100%;
}
.clearfix::after{
content: '';
display: block;
clear: both;
}
.memo {
width: 100%;
height: 250px;
box-sizing: border-box;
resize: none;
}
.dark{
background: black;
color: white;
}
.light{
background: white;
color: black;
}
</style>
</head>
<body>
<header>
<div class="center">
<h2>토글 형태 활용하기</h2>
<button id="btn1">어둡게 보기</button>
<button id="btn2" class="name">이름 보기</button>
<button id="btn3">메모장 모드</button>
</div>
</header>
<section>
<div class="content clearfix">
<div class="left">
<div class="inner"><img src="./img (2)/1.jpg" alt="pic"></div>
</div>
<div class="right">
<div class="inner">
<p>자바스크립트는 객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 사이드 네트워크 프로그래밍에도 사용되고 있다.</p>
<a href="http://www.naver.com">네이버로 이동</a>
</div>
</div>
</div>
</section>
<script>
$(document).ready(function() {
$('#btn1').click(function() {
$('#btn1').toggleClass('dark');
// if($('#bnt1').hasClass('dark')) 아래와 같은코드
if($('#btn1').attr('class') === 'dark') {
//다크모드
$('body').css('backgroung', 'black');
// $('p, h2, a').css('color', 'white');
//태그마다 다른 적용을 할때는 반복문을 이용.
$('p, h2, a').each(function(index, item) {
//each는 일반적인 반복 함수이다.
//앞의 선택자로 지목한 요소를 배열 형태로 받아와서
//index와 item(요소자체)로 나누어서 함수 내부에서 사용할 수 있게 한다.
$(item).css('color', 'white');
});
$(this).html('밝게 보기'); //이벤트가 발생한 주체
} else {
//라이트모드
$('body').css('background', 'white');
$('p, h2, a').css('color', 'white');
$(this).html('어둡게 보기');
}
});
$('#btn2').click(function() {
if($('#btn2').hasClass('name')) {
$('.inner > p').html('홍길동<br>20세<br>능력단위<br>Java, Oracle, Jsp, CSS, JavaScript');
$('.inner > a').css('display', 'none');
$(this).html('내용보기');
$(this).attr('class', 'cont');
} else {
$('.inner > p').html('<p>자바스크립트는 객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 사이드 네트워크 프로그래밍에도 사용되고 있다.</p>');
$('.inner > a').css('display', 'block');
$(this).html('이름보기');
$(this).attr('class', 'name');
}
});
});
</script>
</body>
</html>