jq에서 자주 사용하는 메소드를 알아보자.
each() 반복문은 for in과 비슷하다. 반복문을 태그에 쓰는 것으로 여러 태그를 불러 왔을 때
간편하게 일괄 처리 할 수 있다. 그리고 그의 순서와 값은 key 와 value인 index와 item을 사용한다.
index는 가져온 태그의 순서, item은 해당 값을 의미한다.
addClass(" ") : addClass는 말 그대로 속성값 class를 추가해준다.
removeClass(" ") : addClass는 말 그대로 속성값 class를 제거해준다.
toggleClass(" ") : toggleClass는 클릭 했을 때 클래스가 적용 or 해제되는 속성을 추가
is() : 해당 객체(요소)가 괄호에 입력한 객체인지 판별해주는 메소드 (true & false)
$.extend() : 객체에 속성을 추가하거나 객체와 객체를 합치는 메소드
$.noConflict() : js 라이브러리나 다른 버젼의 jquery의 $ 키워드 충돌을 방지하기 위해 사용하고
이 키워드를 사용하면 $ 달러 키워드를 다른것으로 바꿔 사용 할 수 있다.
어떻게 쓰이는지 확인해보자
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <style> .high_light_0 {background:yellow;} .high_light_1 {background:orange;} .high_light_2 {background:blue;} .high_light_3 {background:green;} .high_light_4 {background:red;} </style> </head> <body> <h1>메소드</h1> <h3>each() 메소드</h3> <p>배열을 관리하는 for in문과 비슷한 기능을 하는 메소드이다.</p> <p>$.each(object, function(index, item){})의 형식으로 사용한다.<br> index : 배열의 인덱스 또는 객체의 키를 의미한다.<br> item : 해당 인덱스나 키가 가진 값을 의미한다.</p> <script type="text/javascript"> /* $(function() { var arr = [ {name:"A", link:"http://www.naver.com"}, {name:"B", link:"http://www.google.com"}, {name:"C", link:"http://www.w3c.com"}, {name:"D", link:"http://www.daum.net"} ]; $.each(arr, function(index, item) { var output = ""; output += "<a href=" + item.link + ">"; output += "<h2>" + item.name + "</h2>"; output += "</a>"; document.body.innerHTML += output; }); }) */ </script> <hr> <div id="wrap"> <h1>item-0</h1> <h1>item-1</h1> <h1>item-2</h1> <h1>item-3</h1> <h1 id="item4">item-4</h1> </div> <script> $(function() { $("#wrap").children().each(function(index, item) { // 문서 객체에 class 속성을 추가하는 메소드 $(this).addClass("high_light_" + index); if(index == 2){ $(this).removeClass("high_light_" + index); } }); $("#item4").click(function() { $(this).toggleClass("high_light_4"); }); }) </script> <hr> <h3>문서 객체의 특징 판별 : is()</h3> <p>매개변수로 선택자를 입력하고, 선택한 객체가 선택자와 일치하는지 판단하여 boolean 리턴</p> <h3 class="test">test1</h3> <h3>test2</h3> <h3 class="test">test3</h3> <h3 class="test">test4</h3> <h3>test5</h3> <h3 class="test">test6</h3> <script> $(function(){ $("h3").each(function(){ if($(this).is(".test")){ $(this).css({"background":"orangered", "color":"white"}) } }); }); </script> <hr> <h3>$.extend() 메소드</h3> <p>객체에 속성을 추가하거나 여러개의 객체를 하나로 합칠 때 사용한다.</p> <script type="text/javascript"> $(function() { var obj1 = { name:"김김김", age:20 } var obj2 = { name:"님님님", hobby:["낚시", "영화"] } $.extend(obj1, {job:"강사"}); console.log(obj1); console.log(obj2); // 두 객체를 하나로 합칠 때 사용 할 수 있다. // 중복되는 객체의 속성은 나중의 것으로 덮어 쓴다. var objs1 = $.extend(obj1, obj2); console.log(objs1); }) </script> <hr> <h3>$.noConflict()</h3> <p>다른 라이브러리나 다른 버전의 jquery와 '$'의 충돌 방지를 위해 사용한다.</p> <h1 id="test">noConflict() 테스트</h1> <script type="text/javascript"> /* var jq = $.noConflict(); // 이 키워드를 통해 $ 키워드 대신 jq를 사용 할 수 있게 된다. jq(function() { jq("#test").css("color", "red"); }) */ // 위의 주석문을 해제하면 페이지의 모든 $가 jq로 바뀌므로 $로 호출한 함수들은 사용할 수 없다. </script> <!-- 다른 버전의 jquery와 충돌나는 경우 예시 --> <!-- <script src="jquery-1.11.1.js"> var jb = jQuery.noConflict(); </script> <script src="jquery-2.1.1.js"> var hs = jQuery.noConflict(); </script> --> </body> </html>
attr() : 해당 객체의 속성을 바꾸거나 확인 할 수 있는 메소드
css() : 해당 객체의 스타일을 바꾸거나 확인 할 수 있는 메소드
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <style type="text/css"> .first{color: red;} .second{color: pink;} .third{color: orange;} </style> </head> <body> <h3>attr() 메소드</h3> <p>문서 객체의 특정 속성 값을 알아내거나 속성을 추가할 때 사용한다.</p> <img src="../image/flower1.PNG" width="400px" height="300px"> <script> $(function(){ // 속성 명에 해당하는 속성 값을 리턴 var img = $("img").attr("src"); console.log("사진경로 : " + img); // 속성명에 해당하는 속성 값을 변경 $("img").attr("src", "../image/flower2.PNG"); // 함수를 통해 인덱스와 value를 활용할 수 있음 $("img").attr("src", function(index, value){ console.log(index, value); }); // 객체를 통해 여러 속성을 설정 $("img").attr({"width":"100px", "height":"50px"}); // 객체의 속성을 제거 $("img").removeAttr("width").removeAttr("height"); }); </script> <hr> <h3>css() 메소드</h3> <p>문서 객체의 스타일을 검사하거나 변경할 때 사용한다.</p> <h1 class="first">test-0</h1> <h1 class="second">test-1</h1> <h1 class="third">test-2</h1> <script type="text/javascript"> $(function() { // 속성 명에 해당하는 속성 값을 리턴 console.log($(".first").css("color")); // 속성명에 해당하는 속성 값을 변경 $(".first").css("color", "black"); // 함수를 통해 인덱스와 value를 활용할 수 있음 $(".first").css("color", function(index, value) { console.log(index, value); }); //객체를 통해 여러 속성을 지정 $(".first").css({"font-size":"3em", "background":"orange"}); }) </script> </body> </html>