HTML의 요소들을 조작하는, 편리한 Javascript를 미리 작성해둔 것. 라이브러리!
jQuery는 미리 작성된 Javascript코드이기 때문에 import를 해줘야 함.
document.getElementById("element").style.display = "none";
$('#element').hide();
JS보다 직관적으로 코드를 작성할 수 있다.
내가 만든 예제
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DoDoPlus</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<style>
.contents {
display: none;
}
</style>
<script>
function open_box() {
$('#post-box').show()
}
function close_box() {
$('#post-box').hide()
}
</script>
<body>
<div>
<h1>jQuery 공부하기!</h1>
<button onclick="open_box()">기록하러가기</button>
</div>
<div class="contents" id="post-box">
<p>jQuery는 편리한 javascript를 미리 모아둔 라이브러리다!</p>
<input type="text">
</div>
<div>
<button onclick="close_box()">닫기</button>
</div>
</body>
</html>
허접하지만 결국에 내가 쓸 줄 모르면 의미 없는거같아서 완전 그냥 뼈대만 만들어놓고
기능 구현만 해보았다. 영상찍으면서 구현하는 것을 타임랩스로 찍던 과중에 jQuery가 안되길래
이게 왜 안되지 하다가 CDN연결을 안해놓고 돌려놓고 있었기 때문... 기능 구현하는데 정신이 없었다
function q1() {
let val = $('#input-q1').val()
if ( val == '') {
alert('입력하세요');
} else {
alert(val);
}
}
비교적 쉬운 문제풀이 였다.
function q2() {
let val =$('#input-q2').val()
if(val.includes('@')) {
let domain = val.split('@')[1].split('.')[0]
alert(domain)
}else {
alert('이메일이 아닙니다.')
}
}
이 문제의 경우에는 split을 이용해서 분리해서 쪼개어 도메인만 띄울 수 있게 해야했다.
내가 먼저 필요한 데이터를 받아오고, 가져온 데이터에서 splite으로 @의 기준점을 잡아 쪼개고 다음은 .을 기준으로 쪼갠다음 domain이라는 변수로 alert(domain)으로 출력했다.
사실 전에 1회 완강했을 때는 풀다가 이해를 잘 못하겠어서 영상을 보고 했었고, 답과도 좀 멀긴했는데.. 기능이 안되진 않았다.
이런 문제의 경우에는 좀 다양하게 다른 사람들의 코드를 보면서 다양성을 키우면 좋겠다는 생각을 했다.
마침 얼마 전, 미니튜터 활동을 하면서 이 문제에 대한 질문을 한 수강생이 있었다.
같은 강의를 듣고 문제를 풀었을 것인데 코드가 나랑은 많이 달라서 어떻게 대답해야할지 몰랐는데
그 수강생이 올려놓은 코드를 그대로 복사해서 확인하고 이런식으로 할 거라면? 이라는 생각으로 고민하고 수정하고 도와준 경험이 있다.
function q3() {
let txt = $('#input-q3').val()
let temp_html = `<li>${txt}</li>`
$('#names-q3').append(temp_html)
}
function q3_remove() {
$('#names-q3').empty()
}
('#input-q3').val()로 input값을 가지고온다. temp_html에 `<li>{txt}` 안의 내용이 무엇이든 들어가게 해둔다.
id선택자 names-q3에 .append를 추가하여 temp_html이 onclick될때마다 추가되게 해준다.
remove()는
names-q3 선택자에 .empty() 메소드를 넣어 onclick 시 삭제되게 해준다.