압축 풀지 않고 이클립스를 실행 → Help → install new software → add → location: 해당 압축파일 저장경로 → Archive → 모두 선택 → 다운로드 및 설치 진행하면 됨(전부 다 동의하는게 좋음)
- jQuery에서 가장 중요한 함수
- • javaScript는 생성된 객체 맴버를 추가하는 것이 자유롭다. 이것을 이용해 만들어진 라이브러리가 jQuery 라이브러리
- JavaScript에서 객체를 jQuery 함수에 매개변수로 넣어주면 객체에 jQuery에서 만든 여러함수를 추가하여 반환
- JavaScript에서 객체를 jQuery 함수에 매개변수로 넣어주면 객체에 jQuery에서 만든 여러함수를 추가하여 반환
- JavaScript의 window.onload와 흡사
- Window.onload는 태그 객체가 모두 생성되면 발생되는 이벤트로 웹 화면이 처음 나타날 때 필요한 작업이 있다면 여기서 구현
- Ready도 동일한 시점에 동작
- 차이점은 window.onload는 여러 개 있을 경우 제일 마지막 것만 동작, Ready는 모든 부분이 동작
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
window.onload = function() {
var result = document.getElementById("result");
result.innerHTML = "on load 1<br/>";
}
window.onload = function() {
var result = document.getElementById("result");
result.innerHTML = "on load 2<br/>";
}
window.onload = function() {
var result = document.getElementById("result");
result.innerHTML = "on load 3<br/>";
}
</script>
</head>
<body>
<div id="result"></div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function(){
$("#result").append("ready 1<br/>");
});
$(document).ready(function(){
$("#result").append("ready 2<br/>");
});
$(document).ready(function(){
$("#result").append("ready 3<br/>");
});
</script>
</head>
<body>
<div id="result"></div>
</body>
</html>
- 기본 선택자
- 순서 필터 선택자
- 인덱스 필터 선택자
- 속성 선택자
- 상태 선택자
- Form 태그 선택자
- 가장 기본이 되는 선택자, 다른 선택자는 기본 선택자를 조합하여 만듬
- 가장 기본이 되는 선택자, 다른 선택자는 기본 선택자를 조합하여 만듬
- 태그이름 선택자(태그이름) : 지정한 태그이름에 해당하는 태그 객체를 가져 온다
- 아이디 선택자(#아이디) : id 속성을 통해 태그 객체를 가져온다
- 클래스 선택자(.클래스) : class 속성을 통해 태그 객체를 가져온다
<script>
$(function(){
$("*").css("background-color", "yellow");
$("p").css("background-color", "blue");
$("div").css("background-color", "green");
});
</script>
<body>
<p id="test1">문자열1</p>
<p class="test3">문자열2</p>
<div id="test2">문자열3</div>
<div class="test3">문자열4</div>
</body>
<script>
$(function(){
$("*").css("background-color", "yellow");
$("p").css("background-color", "blue");
$("div").css("background-color", "green");
});
</script>
<body>
<p id="test1">문자열1</p>
<p class="test3">문자열2</p>
<div id="test2">문자열3</div>
<div class="test3">문자열4</div>
</body>
*
은 모든 태그를 의미함 ( html과 body 태그도 포함 )
<script>
$(function(){
// $("div").css("background-color", "yellow");
// $("p").css("background-color", "yellow");
$("div, p").css("background-color", "yellow");
// $("#a1").css("color", "red");
// $("#a2").css("color", "red");
$("#a1, #a2").css("color", "red");
});
</script>
<body>
<div id="a1">div 1</div>
<div>div 2</div>
<p id="a2">p 1</p>
<p>p 2</p>
</body>
,
를 쓰면 한번에 사용 가능
<script>
$(function(){
$("#a1 > h1").css("background-color", "yellow");
});
</script>
</head>
<body>
<div id="a1">
<h1>자식 태그 h1</h1>
<div>
<h1>자손 태그 h1</h1>
</div>
</div>
</body>
<script>
$(function(){
$("#a1 h1").css("background-color", "yellow");
});
</script>
</head>
<body>
<div id="a1">
<h1>자식 태그 h1</h1>
<div>
<h1>자손 태그 h1</h1>
</div>
</div>
</body>
#a1 > h1
은 바로 자식 태그를 의미
#a1 h1
은 모든 자식 및 자손을 의미함
<script>
$(function(){
$("div.a1").css("background-color", "yellow");
$("div.a2").css("background-color", "red");
$("p.a1").css("background-color", "purple");
$("p.a2").css("background-color", "blue");
});
</script>
</head>
<body>
<div class="a1">div a1</div>
<div class="a2">div a2</div>
<p class="a1">p a1</p>
<p class="a2">p a2</p>
</body>
div.a1(p.a1)
은 div태그(p태그)의 a1 클래스에 대한 것임을 의미
<script>
$(function(){
$("#a1 ~ div").css("background-color", "yellow");
});
</script>
</head>
<body>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
<p id="a1">p 태그</p>
<div>div 태그1</div>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
<div>div 태그2</div>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
<div>div 태그3</div>
<p>p 태그</p>
</body>
#a1 ~ div
#a1 다음으로 그 이후에 나오는 모든 div 태그에 대한 것을 의미
<script>
$(function(){
$("#a1 + div").css("background-color", "yellow");
});
</script>
</head>
<body>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
<p id="a1">p 태그</p>
<div>div 태그1</div>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
<div>div 태그2</div>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
<div>div 태그3</div>
<p>p 태그</p>
</body>
#a1 + div
#a1 다음으로 나오는 첫 번째 div 태그에 대한 것만 의미
<script>
$(function(){
$("p:first").css("background-color", "yellow");
$("p:first-child").css("color", "orange");
$("p:first-of-type").css("font-size", "30px");
});
</script>
</head>
<body>
<p>태그</p>
<hr/>
<div>
<p>div 안의 p태그</p>
<p>div 안의 p태그</p>
<p>div 안의 p태그</p>
</div>
<hr/>
<div>
<p>div 안의 p태그</p>
<p>div 안의 p태그</p>
<div>div 안의 div태그</div>
</div>
</body>
<script>
$(function(){
$("p:first").css("background-color", "yellow");
$("p:first-child").css("color", "orange");
$("p:first-of-type").css("font-size", "30px");
});
</script>
</head>
<body>
<p>태그</p>
<hr/>
<div>
<p>div 안의 p태그</p>
<p>div 안의 p태그</p>
<p>div 안의 p태그</p>
</div>
<hr/>
<div>
<p>div 안의 p태그</p>
<p>div 안의 p태그</p>
<div>div 안의 div태그</div>
</div>
</body>
child가 붙으면, child 인덱스 중에서 해당 태그를 의미
of-type이 붙으면, 해당 태그 중에서 몇번째 인덱스를 의미
<script>
$(function(){
$("p:odd").css("background-color", "yellow");
$("p:even").css("background-color", "red");
});
</script>
</head>
<body>
<p>태그</p>
<p>태그</p>
<p>태그</p>
<div>div 태그</div>
<p>태그</p>
<p>태그</p>
<p>태그</p>
<p>태그</p>
<div>div 태그</div>
<p>태그</p>
<p>태그</p>
<p>태그</p>
<p>태그</p>
<p>태그</p>
<div>div 태그</div>
<p>태그</p>
<p>태그</p>
</body>
→ 이미지가 안나오니까 나중에 확인하고 싶으면 코드복붙하자
odd는 홀수, even은 짝수
<script>
$(function(){
$("p:only-child").css("background-color", "yellow");
$("p:only-of-type").css("color", "orange");
});
</script>
</head>
<body>
<div>
<p>p 태그</p>
<p>p 태그</p>
</div>
<hr/>
<div>
<p>p 태그</p>
</div>
<hr/>
<div>
<p>p 태그</p>
<p>p 태그</p>
<div>div 태그</div>
</div>
</body>
only 시리즈는 그냥 특정 태그의 자식이 하나만 있을때 적용된다고 생각하자
<script>
$(function(){
// $("p:eq(0)").css("background-color", "yellow");
// $("p:nth-child(1)").css("color", "orange");
// $("p:nth-of-type(1)").css("font-style", "italic");
$("p:gt(0)").css("background-color", "yellow");
$("p:lt(7)").css("color", "blue");
$("p:nth-last-child(1)").css("font-size", "30px");
$("p:nth-last-of-type(1)").css("font-style", "italic");
});
</script>
</head>
<body>
<div>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
</div>
<hr/>
<div>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
</div>
<hr/>
<div>
<p>p 태그</p>
<p>p 태그</p>
<div>div 태그</div>
</div>
</body>
gt(0)은 인덱스 0 이후의 해당 태그들에게 적용
lt(7)은 인덱스 7 이전의 해당 태그들에게 적용
<script>
$(function(){
$("p:eq(0)").css("background-color", "yellow");
$("p:nth-child(1)").css("color", "orange");
$("p:nth-of-type(1)").css("font-style", "italic");
//$("p:gt(0)").css("background-color", "yellow");
//$("p:lt(7)").css("color", "blue");
//$("p:nth-last-child(1)").css("font-size", "30px");
//$("p:nth-last-of-type(1)").css("font-style", "italic");
});
</script>
</head>
<body>
<div>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
</div>
<hr/>
<div>
<p>p 태그</p>
<p>p 태그</p>
<p>p 태그</p>
</div>
<hr/>
<div>
<p>p 태그</p>
<p>p 태그</p>
<div>div 태그</div>
</div>
</body>
<script>
$(function(){
$("p:not(.a1)").css("background-color", "yellow");
});
</script>
</head>
<body>
<p>p 태그</p>
<p class="a1">p태그 a1 class</p>
<p class="a2">p태그 a2 class</p>
</body>
NOT 논리 연산자 생각하면 될듯
<script>
$(function(){
$("p[title ~= 'aa']").css("color", "red");
$("p[title *= 'aa']").css("font-size", "30px");
});
</script>
</head>
<body>
<p>속성이 없는 p태그</p>
<p title="aaa1">title이 aaa1인 p 태그</p>
<p title="aaa2">title이 aaa2인 p 태그</p>
<p title="aaa3">title이 aaa3인 p 태그</p>
<p title="aaa3-test">title이 aaa3-test인 p 태그</p>
<p title="aaa3test">title이 aaa3test인 p 태그</p>
<p title="aaa4">title이 aaa4인 p 태그</p>
<p title="aaa5">title이 aaa5인 p 태그</p>
<p title="aa a6">title이 aa a6인 p 태그</p>
<p title="aa">title이 aa인 p 태그</p>
</body>
title 이라는 속성에서
*=
은 해당 단어 포함이고,
~=
은 해당 단어를 가진 경우만 해당
<script>
$(function(){
$("p[title $= 'aaa3']").css("background-color", "green");
$("p[title |= 'aaa3']").css("color", "gray");
$("p[title ^= 'aaa3']").css("font-size", "30px");
});
</script>
</head>
<body>
<p>속성이 없는 p태그</p>
<p title="aaa1">title이 aaa1인 p 태그</p>
<p title="aaa2">title이 aaa2인 p 태그</p>
<p title="aaa3">title이 aaa3인 p 태그</p>
<p title="aaa3-test">title이 aaa3-test인 p 태그</p>
<p title="aaa3test">title이 aaa3test인 p 태그</p>
<p title="aaa4">title이 aaa4인 p 태그</p>
<p title="aaa5">title이 aaa5인 p 태그</p>
<p title="aa a6">title이 aa a6인 p 태그</p>
<p title="aa">title이 aa인 p 태그</p>
</body>
$=
은 해당 값으로 끝나는 태그
|=
일치하거나,일부 포함되어있지만 하이픈으로 연결된 태그
^=
해당 값으로 시작하는 모든 태그
<script>
$(function(){
$("p[title]").css("background-color", "yellow");
$("p[title = 'aaa1']").css("color", "skyblue");
$("p[title != 'aaa1']").css("color", "blue");
});
</script>
</head>
<body>
<p>속성이 없는 p태그</p>
<p title="aaa1">title이 aaa1인 p 태그</p>
<p title="aaa2">title이 aaa2인 p 태그</p>
<p title="aaa3">title이 aaa3인 p 태그</p>
<p title="aaa3-test">title이 aaa3-test인 p 태그</p>
<p title="aaa3test">title이 aaa3test인 p 태그</p>
<p title="aaa4">title이 aaa4인 p 태그</p>
<p title="aaa5">title이 aaa5인 p 태그</p>
<p title="aa a6">title이 aa a6인 p 태그</p>
<p title="aa">title이 aa인 p 태그</p>
</body>
! 은 역시나 NOT
<script>
$(function(){
$(":header").css("color", "red");
});
</script>
</head>
<body>
<p>p 태그</p>
<h1>h1 태그</h1>
<h3>h3 태그</h3>
<input type="text" autofocus="autofocus"/><br>
<input type="text"/><br>
<div>Hello World</div>
<div>Hello World</div>
<div>Hi World</div>
<div>
<p>p 태그를 가지고 있는 div 태그</p>
</div>
<div>
<div>div 태그를 가지고 있는 div 태그</div>
</div>
</body>
h1~h6 태그에만 걸려면
:header
<script>
$(function(){
$(":focus").css("background-color", "green");
});
</script>
</head>
<body>
<p>p 태그</p>
<h1>h1 태그</h1>
<h3>h3 태그</h3>
<input type="text" autofocus="autofocus"/><br>
<input type="text"/><br>
<div>Hello World</div>
<div>Hello World</div>
<div>Hi World</div>
<div>
<p>p 태그를 가지고 있는 div 태그</p>
</div>
<div>
<div>div 태그를 가지고 있는 div 태그</div>
</div>
</body>
autofocus 되어있으면,
:focus
하면 된다.
<script>
$(function(){
$("div:contains('Hello')").css("font-size", "30px");
});
</script>
</head>
<body>
<p>p 태그</p>
<h1>h1 태그</h1>
<h3>h3 태그</h3>
<input type="text" autofocus="autofocus"/><br>
<input type="text"/><br>
<div>Hello World</div>
<div>Hello World</div>
<div>Hi World</div>
<div>
<p>p 태그를 가지고 있는 div 태그</p>
</div>
<div>
<div>div 태그를 가지고 있는 div 태그</div>
</div>
</body>
해당 텍스트에 포함되어있는 것만 적용하려면
태그:contains('텍스트')
<script>
$(function(){
$("div:has(p)").css("font-style", "italic");
});
</script>
</head>
<body>
<p>p 태그</p>
<h1>h1 태그</h1>
<h3>h3 태그</h3>
<input type="text" autofocus="autofocus"/><br>
<input type="text"/><br>
<div>Hello World</div>
<div>Hello World</div>
<div>Hi World</div>
<div>
<p>p 태그를 가지고 있는 div 태그</p>
</div>
<div>
<div>div 태그를 가지고 있는 div 태그</div>
</div>
</body>
특정 태그를 자식으로 가졌다면, 그 태그에만 적용하기 위해서
태그:has(태그)