'jQuery'에 해당되는 글 12건

jQuery 기초 정리

jQuery 2012. 11. 27. 11:20

1.jQuery 기초

  1.1 jQuery() 함수

    $(selector)

    jQuery(selector)

   

    $("p a");

 

  1.2 유틸리티 함수

    $.trim(someString);

    jQuery.trim(someString);

 

  1.3 문서 준비 핸들러

    window.onload = function(){

      $("table tr:nth-child(even)").addClass("even");

    };

 

   $(document).ready(function(){

      $("table tr:nth-child(even)").addClass("even");

   });

 

   $(function(){

      $("table tr:nth-child(even)").addClass("even");

   });

 

  

   자세한 내용은 까페의 문학이님의 게시글을 보시면 됩니다.

   http://cafe.naver.com/javachobostudy/50141

 

  1.4 DOM 엘리먼트 생성하기

     $("<div>안녕!</div>");

 

  1.5 jQuery 확장하기

     $.fn.disable = function(){

       return this.each(function(){

         if(typeof this.disabled != "undefined") this.disabled = true;

       });

     }

 

    $("form#myForm").disable();

 

  1.6 다른 라이브러리들과 함께 jQuery 사용하기

    jQuery.noConflict();

 

 

2.1조작하려는 엘리먼트 선택하기

  2.1.1 기본 CSS 셀렉터 사용하기

  • a - 모든 <a> 엘리먼트와 일치하는 셀렉터
  • #specialID - specialClass를 클래스로 가지는 모든 엘리먼트와 일치하는 셀렉터.
  • .specialClass - specialClass를 클래스로 가지는 모든 엘리먼트와 일치하는 셀렉터.
  • a#specialID.specialClass - 아이디가 specialID이고 specialClass를 클래스로 가지는 <a>엘리먼트
  • p a.specialClass - <p>엘리먼트 내에 선언되고 specialClass를 클래스로 가지는 <a>엘리먼트

   jQuery를 이용해 엘리먼트를 선택하려면 셀렉터를 아래와 같이 $()로 감싸준다.

   $("p a.specialClass"); 

 

  2.1.2 자식 셀렉터, 컨테이너 셀렉터, 어트리뷰트 셀렉터 사용하기

셀렉터

설명

*

모든 엘리먼트와 일치

E

태그명이 E인 모든 엘리먼트와 일치

E F

E의 자손이면서 태그명이 F인 모든 엘리먼트와 일치

E>F

E의 바로 아래 자식이면서 태그명이 F인 모든 엘리먼트와 일치

E+F

E의 형제 엘리먼트로 바로 다음에 나오는 엘리먼트 F와 일치

E~F

E의 형제 엘리먼트로 다음에 나오는 모든 엘리먼트 F와 일치

E:has(F)

태그명이 F인 자손을 하나 이상 가지는 태그명이 E인 모든 엘리먼트와 일치

E.C

클래스명 C를 가지는 모든 엘리먼트 E와 일치. E의 생략은 *.C와 동일함

E#I

아이디가 I인 엘리먼트 E와 일치, E의 생략은 *#I와 동일함.

E[A]

어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치

E[A=V]

값이 V인 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치

E[A^=V]

값이 V로 시작하는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치

E[A$=V]

값이 V로 끝나는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치

E[A*=V]

값이 V를 포함하는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치

  

   $("p > a")

   <p> 엘리먼트의 바로 아래 자식 링크와 일치한다.

 

   $("ul.myList > li > a")

    클래스 myList를 지닌 <ul> 엘리먼트의 바로아래 자식 리스트 엘리먼트를 선택한 다음, 리스트 엘리먼트의 바로 아래 자식

    링크만 선택한다.

 

   $("a[href^=http://]")

    href의 값이 정확히 http://로 시작하는 모든 링크와 일치한다.

  

   form[method] : 특정 어트리뷰트를 가진 엘리먼트와 일치

   input[type=text] : 특정 값과 일치하는 어트리뷰트를 가진 엘리먼트와 일치

  

   $("li:has(a)") <a>엘리먼트를 포함하는 모든 <li> 엘리먼트와 일치한다.

 

 2.1.3 위치로 선택하기

셀렉터

설명

:first

페이지에서 처음으로 일치하는 엘리먼트. li a:first는 리스트 아이템의 첫 번째 링크를 반환한다.

:last

페이지에서 마지막으로 일치하는 엘리먼트. li a:last는 리스트 아이템의 마지막 링크를 반환한다.

:first-child

첫 번째 자식 엘리먼트. li:first-child는 각 리스트의 첫 번째 아이템을 반환한다.

:last-child

마지막 자식 엘리먼트. li:last-child는 각 리스트의 마지막 아이템을 반환한다.

:only-child

형제가 없는 모든 엘리먼트를 반환한다.

:nth-child(n)

n번째 자식 엘리먼트. li:nth-child(2)는 각 리스트의 두 번째 리스트 아이템을 반환한다.

:nth-child(even|odd)

짝수/홀수 자식 엘리먼트. li:nth-child(event)은 각 목록의 짝수 번째 자식 엘리먼트를 반환한다.

:nth-child(Xn+Y)

전달된 공식에 따른 n번째 자식 엘리먼트.

li:nth-child(3n) 3의 배수 번째 아이템을 반환한다.

li:nth-child(5n+1) 5의 배수 +1 번째 아이템을 반환한다.

:even / :odd

페이지 전체의 짝수/홀수 번째 엘리먼트. li:even은 모든 짝수 번째 아이템을 반환한다.

:eq(n)

n번째로 일치하는 엘리먼트.

:gt(n)

n번째 엘리먼트(포함되지 않음) 이후의 엘리먼트와 일치

:lt(n)

n번째 엘리먼트(포함되지 않음) 이전의 엘리먼트와 일치.

 

$("a:first");

페이지에서 첫 번재 <a> 엘리먼트와 일치한다.

 

$("p:odd");  //모든 홀수 번째 문단(<p>) 엘리먼트와 일치한다.

$("p:even"); // 모든 짝수 번째 문단(<p>) 엘리먼트와 일치한다.

 

$("li:last-child");

각 리스트에서 마지막 리스트 아이템과 일치

 

$("table#languages tbody td:first-child");

$("table#languages tbody td:ntn-child(1)"); // 인덱스가 1부터 시작

테이블에서 각 행의 첫 번째 셀과 일치한다.

 

2.1.4 jQuery 정의 셀럭터 사용하기

셀렉터

설명

:animated

현재 애니메이션이 적용되고 있는 엘리먼트를 선택한다.

:button

모든 버튼을 선택한다.

:checkbox

체크박스 엘리먼트만 선택한다.

:checked

선택된 체크박스나 라디오 버튼만을 선택한다.

:contains(foo)

텍스트 foo를 포함하는 엘리먼트만 선택한다.

:disabled

인터페이스에서 비활성화 상태인 모든 폼 엘리먼트를 선택한다.

:enabled

인터페이스에서 활성화 상태인 모든 폼 엘리먼트를 선택한다.

:file

모든 파일 엘리먼트를 선택한다.

:header

헤더 엘리먼트만 선택한다.

:hidden

감춰진 엘리먼트만 선택한다.

:image

폼 이미지를 선택한다.

:input

폼 엘리먼트만 선택한다.(input, select, textarea, button)

:not(filter)

필터의 값을 반대로 변경한다.

:parent

빈 엘리먼트를 제외하고, 텍스트도 포함해서 자식 엘리먼트를 가지는 엘리먼트를 선택한다.

:password

패스워드 엘리먼트만 선택한다.

:radio

라디오 버튼 엘리먼트만 선택한다.

:reset

리셋 버튼을 선택한다.

:selected

선택된 엘리먼트만 선택한다.

:submit

전송 버튼을 선택한다.

:text

텍스트 엘리먼트만 선택한다.

:visible

보이는 엘리먼트만 선택한다.

 

$(":checkbox:checked:enabled");

활성화 되고 선택된 체크박스만 일치한다.

 

$("input:checkbox") // 체크박스만 선택

$("input:not(:checkbox)") //체크박스를 제외하고 모든 <input> 선택

 

*:not()은 필터 셀렉터에는 적용할 수 있지만 찾기 셀레터에는 적용하지 못한다.

$("div p:not(:hidden)"); // O

$("div :not(p:hidden)"); // X

 

2.2 새로운 HTML 생성하기

 $("<div>킴디 짱</div>");

 $("<div>") // $("<div></div>"), $("<div/>")와 동일

 

2.3 확장된 엘리먼트 집합 관리하기

  2.3.1 확장된 집합의 크기 결정하기

size()

설명

확장 집합의 엘리먼트 개수를 반환한다.

매개변수

없음

반환값

엘리먼트 개수

    

   $("#someDiv").html("<h1>페이지에는 총 " + $("a").size() + "개의 링크가 있다.</h1>");

 

  2.3.2 확장 집합에서 엘리먼트 획득하기

get(index) , get()

설명

확장된 집합에서 하나 또는 모든 일치하는 엘리먼트를 가져온다.

매개변수가 명시되지 않았다면 확장 집에서 모든 엘리먼트를 자바스크립트 배열로 반환한다.

매개변수

index (Number)

얻으려는 엘리먼트의 인덱스.

반환값

하나의 DOM 엘리먼트 또는 DOM 엘리먼트 집합

 

  $("img[alt]")[0];

  $("img[alt]").get(0);

 

index(element)

설명

확장 집합에서 전달된 엘리먼트를 찾고, 집합에서 찾은 엘리먼트의 인덱스를 반환한다. 못 찾으면 -1반환

매개변수

element (Element)

순서 번호를 알고자 하는 엘리먼트의 참조

반환값

확장 집합에서 전달된 엘리먼트의 순서 번호

발견되지 않으면 -1 반환

 

  var n1 = $("img").index($("img#findMe")[0]); // ㅉㅉㅉㅉ;;

  var n2 = $("img").index($("img#findMe"));

 

  var element = document.getElementById("findMe");

  var n3 = $("img").index(element );

 

  2.3.3 확장 엘리먼트 집합 재편성하기

add(expression)

설명

expression 매개변수로 명시한 엘리먼트를 확장 집합에 추가한다.

표현식에는 셀렉터, HTML코드, DOM 엘리먼트의 배열이 올 수 있다.

매개변수

element (String|Element|Array)

확장 집합에 추가될 대상을 명시한다.

반환값

확장집합

 

   $("img[alt], img[title]");

   $("img[alt]").add("img[title]");

   alt나 title 어트리뷰트를 가진 모든, <img> 엘리먼트를 반환한다.

  

   $("img[alt]").addClass("thickBorder").add("img[title]").addClass("seeThrough");

   alt 어트리뷰트를 가진 모든 <img> 엘리먼트의 확장 집합을 생성하고, 확장 집합의 각 엘리먼트에

   클래스 thickBorder를 적용한다.

   <img alt="test1" src="test.jpg" class="thickBorder">

   그리고 title 어트리뷰트를 가진 <img> 엘리먼트를 이전 확장집합에 추가하고, 클래스 seeThrough를 적용한다.

   <img alt="test1" src="test1.jpg" class="thickBorder seeThrough">

   <img alt="test2" title="testTitle" src="test2.jpg" class="seeThrough">

  

   $("img[alt]").add("<div>킴디 짱</div>"); //새로운 엘리먼트를 확장 집합에만 추가한다는 점을 주의한다.

  

not(expression)

설명

expression 매개변수의 값에 따라서 일치하는 집합에서 엘리먼트를 제거한다.

매개변수

element (String|Element|Array)

확장 집합에서 제거할 대상을 정의한 jQuery 필터 표현식이나 엘리먼트 참조 또는 엘리먼트 참조 배열

반환값

확장집합

 

  $("img[title]:not([title*=puppy])"); 

  $("img[title]").not("[title *= puppy]"); // 인자값은 엘리먼트 참조와 필터 표현식만 전달 받는다

  확장집합에서 title값이 puppy인 엘리먼트를 제거한다.

  

  $("img[alt]").not($("#findMe3"));

 

  var n = document.getElementById("findMe3");

  $("img[alt]").not(n);

filter(expression)

설명

전달 받은 셀럭터 표현식이나 필터링 함수를 이용해서 확장 집합에서 엘리먼트를 필터링 해낸다.

매개변수

element (String|Function)

확장 집합에서 일치하지 않는 엘리먼트를 모두 제거하고자 jQuery 셀렉터 또는 필터링 조건을 결정하는  함수를 명시한다. 이 함수는 집합에 있는 각 엘리먼트마다 호출된다. 호출된 함수는 해당 시점의 엘리먼트를 함수 콘텍스트인 this로 이용한다. 호출 결과로 false를 반환하는 엘리먼트가 모두 집합에서 제거된다.

반환값

확장집합

  

$("img").addClass("seeThrough").filter("[title*=dog]").addclass("thickBorder");

모든 <img> 엘리먼트에 seeThrough 클래스를 추가하고 title 어트리뷰티 값에 dog 문자열 값을 포함하고 있는

엘리먼트에만 thickBorder클래스를 추가한다.

 

$("div").filter(function (index) { 
                 
return index == 1 || $(this).attr("id") == "fourth"; 
               
}).addclass("thickBorder");

<div>엘리먼트중 두번째 div이거나 id값이 fourth인 div에만 thickBorder 클래스를 추가한다.

 

 

slice(begin, end)

설명

일치하는 집합에서 연속하는 일부분을 포함하는 새로운 확장 집합을 생성하고 반환한다.

매개변수

begin, end (Number)

반환되는 부분 집합에 포함될 엘리먼트의 위치

반환값

확장집합

 

  $("*").slice(2,3);

  모든 엘리먼트를 선택한 다음 세 번째 엘리먼트를 담은 새로운 집합을 생성한다.

  $("*").slice(4);

  모든 엘리먼트중 처음 네 엘리먼트를 제외한 모든 엘리먼트의 집합을 반환한다.

 

2.3.4 관계를 이용해 확장 집합 얻기 

메소드

설명

children()

확장 엘리먼트의 고유한 자식으로 구성된 확장 집합을 반환한다.

contents()

확장 집합에서 엘리먼트의 콘텐츠로 구성된 확장 집합을 반환한다.

next()

확장 집합 내의 각 확장 엘리먼트 바로 다음에 나오는 형제로 구성된 확장 집합을 반환한다.

nextAll()

확장 집합 내의 각 확장 엘리먼트 다음에 나오는 모든 형제로 구성된 확장 집합을 반환한다.

parent()

확장 집합 내에 있는 모든 확장 엘리먼트의 바로 위 부모로 구성된 확장 집합을 반환한다.

parents()

모든 확장 엘리먼트의 조상으로 구성된 확장 집합을 반환한다.

prev()

확장 집합 내의 각 확장 엘리먼트 바로 이전에 나오는 형제로 구성된 확장 집합을 반환한다.

prevAll()

확장 집합 내의 각 확장 엘리먼트 이전에 나오는 모든 형제로 구성된 확장 집합을 반환한다.

siblings()

확장 엘리먼트의 모든 형제를 포함하는 확장 집합을 반환한다.

2.3.5 확장 집합을 이용하는 기타 방법들 

find(selector)

설명

원본의 모든 엘리먼트 중 전달된 셀렉터 표현식과 일치하는 엘리먼트로 구성된 새로운 확장 집합을 반환한다.

매개변수

selector (String)

반환될 집합의 일부가 될 엘리먼트가 일치하는 셀렉터

반환값

새로 생성된 확장집합

 

wrappedSet.find("p cite"); 

변수 wrappedSet에 할당된 확장 집합에서, <p> 엘리먼트에 포함된 모든 <cite>엘리먼트로 구성된 확장 집합을 생성.

 

 $("p").find("span").css('color','red'); 

<p>엘리먼트 하위의 <span>엘리먼트의 글자색을 빨간색으로 설정

 

 $("span", $("p")).css('color','red'); // 더 간결한 방법

 

is(selector)

설명

확장 집합에 전달된 셀렉터 표현식과 일치하는 엘리먼트가 있는지 확인한다.

매개변수

selector (String)

확장 집합 엘리먼트를 평가 할 셀렉터 표현식

반환값

전달된 셀렉터에 하나라도 일치하면 true, 그렇지 않다면 false

 

var hasImage = $("*").is("img");

전체 엘리먼트중 <img>엘리먼트가 존재하면 hasImage 변수에 true를 저장한다. 그렇지 않으면 false

 

 

2.3.6 jQuery 체인 관리하기

end()

설명

jQuery 커맨드 체인에서 사용하며 이전 확장 집합으로 돌아간다.

매개변수

없음

반환값

이전 확장 집합

 

$("img").appendTo("#somewhere").end().addClass("beenCloned");

아이디가 #somewhere인 엘리먼트 하위에 <img> 엘리먼트를 붙이고, <img>엘리먼트에 beenCloned 클래스를 추가한다.

 

andSelf()

설명

커맨드 체인에서 이전 확장 집합 두 개를 하나로 합친다.

매개변수

없음

반환값

합쳐진 확장 집합

 

$("div#aa").find("p").andSelf().css("border", "2px solid red");

id가 aa인 <div>엘리먼트의 확장 집합과 <div>엘리먼트 하위의 <p>엘리먼트의 확장 집합을 합친

확장집합의 border 값을 2px solid red로 설정한다.

 

3.1 엘리먼트 프로퍼티와 어트리뷰트 조작하기

  3.1.1 엘리먼트 프로퍼티 조작하기 

each(iterator)

설명

일치하는 집합을 순회하면서 전달된 반복자 함수를 엘리먼트마다 호출한다.

매개변수

iterator (Function)

일치하는 집합의 엘리먼트마다 호출되는 함수. 집합에 있는 엘리먼트의 0부터 시작하는 인덱스를 매개변수로 받는다. 엘리먼트는 함수의 this 프로퍼티로 이용할 수 있다.

반환값

확장집합

 

    $("img").each(function(n){

        this.alt = "아이디가 " + this.id + "인 image[" + n + "]이다."

    })

   

  3.1.2 어트리뷰트 값 가져오기

attr(name)

설명

일치하는 잡합의 첫 번째 엘리먼트에서 매개변수로 명시된 어트리뷰트의 값을 얻는다.

매개변수

name(String)

값을 가져올 어트리뷰트의 이름

반환값

첫 번째로 일치하는 엘리먼트의 어트리뷰트 값.

없으면 undefined

 

  <img id="myImage" src="test.gif" alt="이미지"/>

  $("#myImage").attr("alt");

 

  3.1.3 어트리뷰트 값 설정하기

attr(name, value)

설명

매개변수에 전달된 값을 이용해 확장 집합의 모든 엘리먼트에 해당 어트리뷰트 이름의 값을 설정한다.

매개변수

name(String) 값을 설정할 어트리뷰트 이름

value(String|Object|Function) 어트리뷰트 값을 명시한다. 값을 반환하는 자바스크립트 표현식이나 함수를 사용할 수 있다. 이 매개변수가 어떻게 처리되는지는 이어지는 논의를 살펴보자.

반환값

확장 집합

 

  $("*").attr("title", function(indext){

    return "나는 " + index + "번 엘리머트이고 내 이름은 " + (this.id? this.id : "unset") + "이다";

  });

  $("input").attr({value : "", title : "값을 입력하세요."});

  3.1.4 어트리뷰트 제거하기

removeAttr(name)

설명

일치하는 모든 엘리먼트에서 명시된 어트리뷰트를 제거한다.

매개변수

name(String) 삭제할 어트리뷰트 이름

반환값

확장 집합

 

어트리뷰트를 제거한다고 해서 자바스크립트 DOM 엘리먼트에서 대응하는 프러퍼티가 제거되는 않음에 주목하자. 단지 값이 변경될 뿐이다. 예를 들어 한 엘리먼트에서 readonly 어트리뷰트를 제거함으로써 readonly 프로퍼티 값이 true에서 false로 전환되지만 이로 인해 엘리먼트에서 프로퍼티가 제거되지는 않는다.

 

3.2 엘리먼트 스타일 변경하기

  3.2.1 클래스 추가하고 제거하기

addClass(name)

설명

매개변수로 전달된 하나 이상 되는 클래스명을 확장 집합의 모든 엘리먼트에 추가한다.

매개변수

name(String)

클래스명을 포함하는 문자열, 여러 클래스명을 추가할 때는 공백으로 구분한다.

반환값

확장 집합

 

removeClass(name)

설명

매개변수로 전달된 하나 이상되는 클래스명을 확장 집합에 있는 모든 엘리먼트에서 제거한다.

매개변수

name(String)

클래스명을 포함하는 문자열, 다수의 클래스명을 제거하는 경우 고액으로 구분한다.

반환값

확장 집합

 

toggleClass(name)

설명

매개변수로 전달된 클래스명이 엘리먼트에 존재하지 않으면 추가하고, 존재한다면 제거한다. 이때 각 엘리먼트가 개별로 평가되므로, 클래스명이 추가되는 엘리먼트도 있고 제거되는 엘리먼트도 있다는점에 주목한다.

매개변수

name(String)

토글 대상 클래스명을 포함하는 문자열

반환값

확장 집합

 

   function swap(){

     $("tr").toggleClass("striped");

   }

 

   <table onmouseover="swap();" onmouseout="swap();">

 

  3.2.2 스타일 얻고 설정하기

 

css(name, value)

설명

일치하는 각 엘리먼트에 name 매개변수의 CSS 스타일 프로퍼티를 value 매개변수 값으로 설정한다.

매개변수

name(String) 설정하려는 CSS 프러퍼티 이름

value(String|Number|Function)

프로퍼티 값을 포함하는 문자열, 숫자, 함수.

매개변수로 함수가 전달되면, 확장 집합에 있는 각 엘리먼트는 함수의 반환값을 CSS 프로퍼티 값으로 사용한다. 각 함수 호출에서 this 프로퍼티는 평가할 엘리먼트로 설정된다.

반환값

확장 집합

 

  $("div.expandable").css("width", function(){

     return $(this).width() + 20 + "px";

  });

 

css(properties)

설명

매개변수로 전달된 객체에 키로 명시한 CSS 스타일 프로퍼티를 일치하는 엘리먼트의 해당 값으로 설정한다.

매개변수

properties (Object)

확장 집합에 속한 모든 엘리먼트에 설정할 CSS 프로퍼티를 포함한 객체.

반환값

확장 집합

 

  $("div.expandable").css({color:red, width:20px, height: function(index, value) { 
       
return parseFloat(value) * 1.2; 
     
} });

css(name)

설명

확장 집합의 첫 번째 엘리먼트에서 name으로 명시한 CSS 프로퍼티의 계산 값을 가져온다.

매개변수

name(String)

반환될 CSS 프로퍼티 이름을 명시한다.

반환값

계산된 스타일 값

 

$("div.expandable").css("color");

 

width(value) / height(value)

설명

일치하는 집합에 속한 모든 엘리먼트의 너비나 높이를 설정한다.

매개변수

value(Number)

설정된 픽셀 값

반환값

확장 집합

 

width() / height()

설명

확장 집합의 첫 번째 엘리먼트의 너비나 높이를 가져온다.

매개변수

없음

반환값

계산된 너비나 높이의 숫자 값

 

   $("div.myElements").width(500);

   $("div.myElements").css("width", "500px");

  

   var value = $("div.myElements").width();

 

  3.2.3 스타일과 관련된 유용한 커맨드

hasClass(name)

설명

일치하는 집합의 엘리먼트에 전달된 클래스 이름이 있는지 확인한다.

매개변수

Name (String)

확인하려는 클래스 이름

반환값

확장 집합의 엘리먼트가 저달된 클래스 이름을 가지면 true, 아니면 false를 반환한다.

 

 

$("p:first").hasClass("surpriseMe");

내부적으론 아래와 같이 구현 되어 있다.

$("p:first").is(".surpriseMe");

 

3.3 엘리먼트 콘텐츠 설정하기

  3.3.1 HTML과 텍스트 콘텐츠 대체하기

html(text)

설명

전달된 HTML 코드를 모든 일치하는 엘리먼트의 콘텐츠로 설정한다.

매개변수

text (String)

엘리먼트 콘텐츠로 설정될 HTML 코드

반환값

확장 집합

 

$("div").html("<span class='red'>Hello <b>Again</b></span>");

그냥 innerHTML인가 보네..

 

text()

설명

확장 엘리먼트의 모든 텍스트 콘텐츠를 결합하여 커맨드의 결과로 반환한다.

매개변수

없음

반환값

결홥된 문자열

 

var text = $("div").text(); 

텍스트 노드만 가져온다.

 

text(content)

설명

모든 확장 엘리먼트의 텍스트 콘텐츠를 전달된 값으로 설정한다. 전달된 텍스트가 “<” 또는 “>”을 포함한다면, 그 문자는 HTML 엔티티로 대체된다. (화면에 그대로 표시한다)

매개변수

Content (String)

확장 엘리먼트에 설정될 콘텐츠

반환값

확장 집합

 

$("div").text("<span class='red'>Hello <b>Again</b></span>"); 

<span class='red'>Hello <b>Again</b></span> 모두 문자열로 화면에 그대로 출력

 

  3.3.2 엘리먼트 복사하기와 이동하기

append(content)

설명

일치하는 모든 엘리먼트의 콘텐츠에 전달된 HTML 코드나 엘리먼트를 덧붙인다.

매개변수

content (String|Element|Object)

확장 집합의 엘리먼트에 추가할 문자열, 엘리먼트, 확장 엘리먼트 집합.

반환값

확장 집합

 

appendTo(target)

설명

확장 집합의 모든 엘리먼트를 target의 끝으로 이동시킨다.

매개변수

target (String|Element)

jQuery 셀렉터나 DOM 엘리먼트. 확장 집합에 있는 각 엘리먼트는 target의 위치에 추가된다. 셀렉터가 두 개 이상 엘리먼트에 일치하면 엘리먼트는 복사되고, 그런 다음 일치하는 각 엘리먼트에 추가된다.

반환값

확장 집합

 

$("p").append("<b>text</b>");

$("p.appendToMe").append($(a.appendMe));

var toAppend = $("a.appendMe")[0];

$("p.appendToMe").append(toAppend);

 

a.apend(b) // a 엘리먼트에 b엘리먼트를 덧붙인다.

a.appendTo(b)  // a 엘리먼트를 b 엘리먼트에 덧붙인다.

 

대상이 하나이면 원본 엘리먼트는 기존 위치에서 삭제되고 덧붙여지도록 지덩된 새로운 부모 엘리먼트의 위치로 이동한다.

대상이 여러개라면 원본 엘리먼트는 그대로 남아 있고 각 대상에 복사본이 추가된다.

 

<div class="inner">Hello</div>
<div class="inner">Goodbye</div>

 

// 원본 엘리먼트를 대상 엘리먼트 앞에 삽입한다.

$('.inner').prepend('<p>Test</p>');

<div class="inner">
    <p>Test</p>
    Hello
</div>
<div class="inner">
    <p>Test</p>
    Goodbye
</div>

 

$('<p>Test</p>').prependTo('.inner');

<div class="inner">
    <p>Test</p>
    Hello
  </div>
<div class="inner">
    <p>Test</p>
    Goodbye
</div>

 

 

// 엘리먼트를 대상의 첫 번째 자식으로 삽입하는 대신에 대상의 바로 앞 형제로 삽입한다.

$('.inner').before('<p>Test</p>');

<p>Test</p>
<div class="inner">Hello</div>
<p>Test</p>
<div class="inner">Goodbye</div>

 

$('<p>Test</p>').insertBefore('.inner');

<p>Test</p>
<div class="inner">Hello</div>
<p>Test</p>
<div class="inner">Goodbye</div>

 

 

//엘리먼트를 대상의 마지막 자식으로 삽입하는 대신에 대상의 바로 뒤 형제로 삽입한다.

$('.inner').after('<p>Test</p>');

<div class="inner">Hello</div>
<p>Test</p>
<div class="inner">Goodbye</div>
<p>Test</p>

 

$('<p>Test</p>').insertAfter('.inner');

<div class="inner">Hello</div>
<p>Test</p>
<div class="inner">Goodbye</div>
<p>Test</p>

 

 3.3.3 엘리먼트 감싸기

 

<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">Goodbye</div>
</div>

 

wrap(wrapper)

설명

일치하는 집합의 엘리먼트를 전달된 HTML 태그나 엘리먼트의 복사본으로 감싼다.

매개변수

wrapper (String|Element)

일치하는 집합 내에 있는 각 엘리먼트를 감싸려는 HTML 코드 문자열 또는 래퍼로 제공되는 복사될 엘리먼트

반환값

확장 집합

 

$('.inner').wrap('<div class="new" />');

<div class="container">
  <div class="new">
    <div class="inner">Hello</div>
  </div>
  <div class="new">
    <div class="inner">Goodbye</div>
  </div>
</div>

 

wrapAll(wrapper)

설명

일치하는 집합 내에 있는 모든 엘리먼트를 전달된 HTML 태그나 전달된 엘리먼트의 복사본으로 감싼다. 일치하는 집합을 하나의 단위로 취급한다.

매개변수

wrapper (String|Element)

일치하는 집합의 각 엘리먼트를 감싸려는 HTML 코드 문자열 또는 래퍼로 제공되고 복사될 엘리먼트

반환값

확장 집합

 

$('.inner').wrapAll('<div class="new" />');

<div class="container">
  <div class="new">
    <div class="inner">Hello</div>
    <div class="inner">Goodbye</div>
  </div>
</div> 

 

wrapInner(wrapper)

설명

일치하는 집합에서 엘리먼트의 텍스트 노드를 포함한 콘텐츠를 전달된 HTML 태그나 엘리먼트의 복사본으로 감싼다.

매개변수

wrapper (String|Element)

일치하는 집합의 각 엘리먼트를 감싸려는 HTML 문자열 또는 래퍼로 제공되는 복사될 엘리먼트

반환값

확장 집합

 

$('.inner').wrapInner('<div class="new" />');

<div class="container">
  <div class="inner">
    <div class="new">Hello</div>
  </div>
  <div class="inner">
    <div class="new">Goodbye</div>
  </div>
</div>

  3.3.4 엘리먼트 제거하기

remove()

설명

페이지 DOM에서 확장 집합의 모든 엘리먼트를 삭제한다.

매개변수

없음

반환값

확장 집합

<div class="container">
  <div class="hello">Hello</div>
  <div class="goodbye">Goodbye</div>
</div>

 

$('.hello').remove();

$('div').remove('.hello');

 

<div class="container">
  <div class="goodbye">Goodbye</div>
</div>

 

empty()

설명

일치하는 집합의 모든 DOM 엘리먼트의 콘텐츠를 제거한다.

매개변수

없음

반환값

확장 집합

 

<div class="container">
  <div class="hello">Hello</div>
  <div class="goodbye">Goodbye</div>
</div>

 

$('.hello').empty();

<div class="container">
  <div class="hello"></div>
  <div class="goodbye">Goodbye</div>
</div>

 

$("div#divTest").after("<p>div를 대체한다.</p>").remove(); 

$.fn.replaceWith = function(html){

   return this.after(html).remove();

}

$("div#divTest").replaceWith er("<p>div를 대체한다.</p>"); 

 

  3.3.5 엘리먼트 복사하기

clone(copyHandlers)

설명

확장 집합에 있는 엘리먼트를 복사하여 이를 포함하는 새로운 확장 집합을반환한다. 엘리먼트와 자식 모두 복사된다. copyHandlers 매개변수 옵션에 따라 이벤트 핸들러의 복사 여부가 결정된다.

매개변수

copyHandlers (Boolean)

true이면 이벤트 핸들러를 복사하고, false이거나 생략하면 복사하지 않는다.

반환값

새로 생성된 확장 집합

 

$("img").clone(); // 원본 확장 집합과 복사본 확장 집합 2개 생성후 아무것도 안함.

// 확장집합 복사 후 id가 here인 노드 바로 앞 형제로 삽입 후 원본 확장 집합 숨김

$("img").clone().insertBefore("#here").end().hide();

 

3.4 폼 엘리먼트 값 다루기

val()

설명

일치하는 집합에 있는 첫 번째 엘리먼트의 value 프로퍼티를 반환한다. 다중 선택이 가능한 엘리먼트라면, 반환값은 선택된 값의 배열이다.

매개변수

없음

반환값

가져온 값 혹은 값의 배열

 

$("[name=radioGroup]:checked").val(); // name이 radioGroup인 라디오 버튼들중 선택된 라디오 버튼의 value값을 가져온다.

체크박스와 마친가지로 확장집합의 첫번째 값만 가져오기 때문에 :checked를 안해주면 선택이 되었던 안되어있던 첫번째

라디오 버튼의 value값을 가져온다.

 

val(value)

설명

매개변수로 전달된 값을 일치하는 모든 폼 엘리먼트의 value 프로퍼티로 설정한다.

매개변수

value (String)

확장 집합에 있는 각 폼 엘리먼트의 value 프로퍼티에 설정할 문자열

반환값

확장 집합

 

$("[type=radio]").val("c"); // 셋팅 안됨
$("[type=checkbox]").val("가"); // 셋팅 안됨
$("[type=text]").val("텍스트 박스"); // 셋팅 됨
$("select").val("Multiple"); // 셋팅 됨

 

val(values)

설명

전달된 values 배열의 값과 일치하는 확장 집합에 있는 체크박스, 라디오 버튼을 선택하고 <select> 엘리먼트의 옵션을 선택한다.

매개변수

value (Array)

엘리먼트의 선택 여부를 결정하는 데 사용하는 값의 배열

반환값

확장 집합

 

 

$("[type=radio]").val(["c"]); // 셋팅 됨

$("[type=checkbox]").val(["가"]); // 셋팅 됨
$("[type=text]").val(["텍스트 박스"]); // 셋팅 됨
$("select").val(["Multiple"]); // 셋팅 됨

 

<select>에 배열로 넘기면 멀티 선택이 가능하고 (multiple="multiple" or multiple="true")

text박스에 배열로 넘기면 (["가","나","다"])

가,나,다 <= 요따구로 셋팅된다

.

'jQuery' 카테고리의 다른 글

JQuery 와 Prototype 충돌 방지  (0) 2012.07.09
jquery 유효성 검사  (0) 2012.02.09
jQuery 스크롤 올리기  (0) 2012.02.07
XML HTML로 로드 하기  (0) 2012.01.10
jquery 동적 js 실행  (0) 2012.01.10
블로그 이미지

스마트전

,

JQueryprototype에서 $()를 사용하려면 충돌이 일어나 스크립트 오류를 일으킨다.

 

둘다 같은 $()를 쓰니까..

 

이를 해결하는 방법은 아래와 같다.

 

jQueryprototype 을 정의한 아래줄에 다음의 소스를 추가한다.

 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

 

<script type="text/javascript">
jQuery.noConflict();
var j$ = jQuery;
</script>

 

위와 같이 정의해두면 jQuery에 대한 $()는 -> j$() 로 대체해서 사용할수 잇게된다.

 

물론 충돌도 일어나지 않는다.

 

++ 하지만! jquery의 다른 라이브러리를 다운로드 받아 사용하려면 해당 라이브러리의 $ 를 j$ 로 모두 바꿔줘야 하는 번거로움이 있다.

이는 스크립트를 가져오는 순서만 잘 나열해주면 바로 해결된다.

 

ex)

<script type="text/javascript" src"./js/jquery-1.6.2.min.js"></script> <!-- jquery 기본 라이브러리 -->
<script type="text/javascript" src="./js/jquery-ui-1.8.16.custom.min.js"></script> <!-- 별도로 다운로드 받은 라이브러리 -->

<script type="text/javascript">
jQuery.noConflict();
var j$ = jQuery;
</script>

<script type="text/javascript" src="./js/prototype.js"></script>

 

이런식으로 jquery를 먼저 로드하고 후에 prototype.js 를 로드하면 둘다 문제 없이 사용할 수 있다.

'jQuery' 카테고리의 다른 글

jQuery 기초 정리  (0) 2012.11.27
jquery 유효성 검사  (0) 2012.02.09
jQuery 스크롤 올리기  (0) 2012.02.07
XML HTML로 로드 하기  (0) 2012.01.10
jquery 동적 js 실행  (0) 2012.01.10
블로그 이미지

스마트전

,

jquery 유효성 검사

jQuery 2012. 2. 9. 14:01
<form action="" class="form">
	<p>(*) 항목은 반드시 입력해 주세요.</p>
	<ul>
		<li>
			<label for="uid">ID(*):</label>
			<input id="uid" />
			영문, 숫자, 언더스코어(_), 하이픈(-)이 포함된 3~16 문자.
		</li>
		<li>
			<label for="upw">PW(*):</label>
			<input id="upw" type="password" />
			영문, 숫자, 언더스코어(_), 하이픈(-)이 포함된 6~18 문자.
		</li>
		<li>
			<label for="mail">Email(*):</label>
			<input id="mail" value="@" />
		</li>
		<li>
			<label for="url">Web(*):</label>
			<input id="url" value="http://" />
		</li>
		<li>
			<label for="tel">Tel(*):</label>
			<input id="tel" />
			하이픈(-)은 입력하지 마세요.
		</li>
	</ul>
	<input type="submit" value="전송" />
</form>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
// <![CDATA[
jQuery( function($) { // HTML 문서를 모두 읽으면 포함한 코드를 실행

	// 정규식을 변수에 할당
	// 정규식을 직접 작성할 줄 알면 참 좋겠지만
	// 변수 우측에 할당된 정규식은 검색하면 쉽게 찾을 수 있다
	// 이 변수들의 활약상을 기대한다
	// 변수 이름을 're_'로 정한것은 'Reguar Expression'의 머릿글자
	var re_id = /^[a-z0-9_-]{3,16}$/; // 아이디 검사식
	var re_pw = /^[a-z0-9_-]{6,18}$/; // 비밀번호 검사식
	var re_mail = /^([\w\.-]+)@([a-z\d\.-]+)\.([a-z\.]{2,6})$/; // 이메일 검사식
	var re_url = /^(https?:\/\/)?([a-z\d\.-]+)\.([a-z\.]{2,6})([\/\w\.-]*)*\/?$/; // URL 검사식
	var re_tel = /^[0-9]{8,11}$/; // 전화번호 검사식

	// 선택할 요소를 변수에 할당
	// 변수에 할당하지 않으면 매번 HTML 요소를 선택해야 하기 때문에 귀찮고 성능에도 좋지 않다
	// 쉼표를 이용해서 여러 변수를 한 번에 선언할 수 있다
	// 보기 좋으라고 쉼표 단위로 줄을 바꿨다
	var
		form = $('.form'),
		uid = $('#uid'),
		upw = $('#upw'),
		mail = $('#mail'),
		url = $('#url'),
		tel = $('#tel');

	// 선택한 form에 서밋 이벤트가 발생하면 실행한다
	// if (사용자 입력 값이 정규식 검사에 의해 참이 아니면) {포함한 코드를 실행}
	// if 조건절 안의 '정규식.test(검사할값)' 형식은 true 또는 false를 반환한다
	// if 조건절 안의 검사 결과가 '!= true' 참이 아니면 {...} 실행
	// 사용자 입력 값이 참이 아니면 alert을 띄운다
	// 사용자 입력 값이 참이 아니면 오류가 발생한 input으로 포커스를 보낸다
	// 사용자 입력 값이 참이 아니면 form 서밋을 중단한다
	form.submit( function() {
		if (re_id.test(uid.val()) != true) { // 아이디 검사
			alert('[ID 입력 오류] 유효한 ID를 입력해 주세요.');
			uid.focus();
			return false;
		} else if(re_pw.test(upw.val()) != true) { // 비밀번호 검사
			alert('[PW 입력 오류] 유효한 PW를 입력해 주세요.');
			upw.focus();
			return false;
		} else if(re_mail.test(mail.val()) != true) { // 이메일 검사
			alert('[Email 입력 오류] 유효한 이메일 주소를 입력해 주세요.');
			mail.focus();
			return false;
		} else if(re_url.test(url.val()) != true) { // URL 검사
			alert('[Web 입력 오류] 유효한 웹 사이트 주소를 입력해 주세요.');
			url.focus();
			return false;
		} else if(re_tel.test(tel.val()) != true) { // 전화번호 검사
			alert('[Tel 입력 오류] 유효한 전화번호를 입력해 주세요.');
			tel.focus();
			return false;
		}
	});

	// #uid, #upw 인풋에 입력된 값의 길이가 적당한지 알려주려고 한다
	// #uid, #upw 다음 순서에 경고 텍스트 출력을 위한 빈 strong 요소를 추가한다
	// 무턱대고 자바스크립트를 이용해서 HTML 삽입하는 것은 좋지 않은 버릇
	// 그러나 이 경우는 strong 요소가 없어도 누구나 form 핵심 기능을 이용할 수 있으니까 문제 없다
	$('#uid, #upw').after('<strong></strong>');

	// #uid 인풋에서 onkeyup 이벤트가 발생하면
	uid.keyup( function() {
		var s = $(this).next('strong'); // strong 요소를 변수에 할당
		if (uid.val().length == 0) { // 입력 값이 없을 때
			s.text(''); // strong 요소에 포함된 문자 지움
		} else if (uid.val().length < 3) { // 입력 값이 3보다 작을 때
			s.text('너무 짧아요.'); // strong 요소에 문자 출력
		} else if (uid.val().length > 16) { // 입력 값이 16보다 클 때
			s.text('너무 길어요.'); // strong 요소에 문자 출력
		} else { // 입력 값이 3 이상 16 이하일 때
			s.text('적당해요.'); // strong 요소에 문자 출력
		}
	});

	// #upw 인풋에서 onkeyup 이벤트가 발생하면
	upw.keyup( function() {
		var s = $(this).next('strong'); // strong 요소를 변수에 할당
		if (upw.val().length == 0) { // 입력 값이 없을 때
			s.text(''); // strong 요소에 포함된 문자 지움
		} else if (upw.val().length < 6) { // 입력 값이 6보다 작을 때
			s.text('너무 짧아요.'); // strong 요소에 문자 출력
		} else if (upw.val().length > 18) { // 입력 값이 18보다 클 때
			s.text('너무 길어요.'); // strong 요소에 문자 출력
		} else { // 입력 값이 6 이상 18 이하일 때
			s.text('적당해요.'); // strong 요소에 문자 출력
		}
	});

	// #tel 인풋에 onkeydown 이벤트가 발생하면
	// 하이픈(-) 키가 눌렸는지 확인
	// 하이픈(-) 키가 눌렸다면 입력 중단
	tel.keydown( function() {
		if(event.keyCode==109 || event.keyCode==189) {
			return false;
		}
	});
});
// ]]>
</script>

'jQuery' 카테고리의 다른 글

jQuery 기초 정리  (0) 2012.11.27
JQuery 와 Prototype 충돌 방지  (0) 2012.07.09
jQuery 스크롤 올리기  (0) 2012.02.07
XML HTML로 로드 하기  (0) 2012.01.10
jquery 동적 js 실행  (0) 2012.01.10
블로그 이미지

스마트전

,

<!doctype html>

모바일웹 이나 웹을 만들경우 스크롤을 내렸을 경우 다시 Top 으로 올라갈 때 유저가 불편할 수 있으므로 어느정도 스크롤을 내리면 위로 자동으로 올려주는 기능이 필요합니다.~
그래서 간단히 구현한 위로 올라가기 animate 으로 화면을 이쁘게~

TEST
http://jjh889.lovepc.net/c/demo-scroll-top/scrolltotop.html   

<html lang="kr">
<head>
<meta charset="utf-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script>
$(document).ready(function(){

 $("#back-top").hide();
 //alert($(window).height());  // 윈도우 크기 현재 창
 $(function () {
  $(window).scroll(function () {
   if ($(this).scrollTop() > 1000) { // 스크롤 내린 크기
    $('#back-top').fadeIn();
   } else {
    $('#back-top').fadeOut();
   }
  });

  $('#back-top a').click(function () {
   $('body,html').animate({
    scrollTop: 0
   }, 300);   // 애니메이션 속도 작을 수록 빨라요~
   return false;
  });
 });

});
</script>

<style>
body {
 font: .88em/150% Arial, Helvetica, sans-serif;
 margin: 30px auto;
}
h1 {
 font: bold 80%/120% Arial, Helvetica, sans-serif;
 text-transform: uppercase;
 margin: 0 0 10px;
 color: #999;
}
h2 {
 font-size: 2.5em;
 margin: 0 0 8px;
}
h3 {
 font-size: 1.6em;
 margin: 20px 0 5px;
}
a {
 color: #69C;
 text-decoration: none;
}
a:hover {
 color: #F30;
}
p {
 margin: 0 0 10px;
}
em {
 font: italic 100% "Times New Roman", Times, serif;
}
.credits {
 border-bottom: solid 1px #eee;
 padding-bottom: 10px;
 margin: 0 0 30px;
}
#pagewrap {
 margin: 0 auto;
 width: 600px;
 padding-left: 150px;
 position: relative;
}

#back-top {
 position: fixed;
 bottom: 30px;
 margin-left: -150px;
}
#back-top a {
 display: block;
 text-align: center;
 font: 11px/100% Arial, Helvetica, sans-serif;
 text-transform: uppercase;
 text-decoration: none;
 color: #bbb;
 /* background color transition */
 -webkit-transition: 1s;
 -moz-transition: 1s;
 transition: 1s;
}
#back-top a:hover {
 color: #000;
}
/* arrow icon (span tag) */
#back-top a:hover span {
 background-color: #777;
}
</style>

</head>

<body id="top">
<div id="pagewrap">
 <h1>Seok-In</h1>
 <h2><a href="http://smartjuho.tistory.com/">스크롤 테스트</a></h2>
 <p class="credits"><em>by <a href="http://smartjuho.tistory.com/">juho</a></em></p>
 <p>&darr; scroll down</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>더내려~~~~</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>&darr;</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 <p>←</p>
 
 <p id="back-top">
  <a href="#top"><span></span>▲ 위로 gogo ▲</a>
 </p>

</div>
</body>
</html>

'jQuery' 카테고리의 다른 글

JQuery 와 Prototype 충돌 방지  (0) 2012.07.09
jquery 유효성 검사  (0) 2012.02.09
XML HTML로 로드 하기  (0) 2012.01.10
jquery 동적 js 실행  (0) 2012.01.10
jQuery json load  (0) 2012.01.10
블로그 이미지

스마트전

,

XML HTML로 로드 하기

jQuery 2012. 1. 10. 17:43

------------------------------

<?xml version="1.0" encoding="utf-8" ?>

<Company CompanyType="Private">

  <CompanyName>닷넷코리아</CompanyName>

  <CompanyNumber>1234</CompanyNumber>

  <CompanyAddress>서울</CompanyAddress>

  <Name>레드마이너스</Name>

</Company>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>XML 파일 로드하기</title>

    <script src="../Js/jquery-1.3.2-vsdoc2.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function() {

            $("#btn").click(function() {

                $.get('04.Company.xml', function(data) {

                    $('#ctlGrid').empty();

                    $(data).find('Company').each(function() {

                        var $entry = $(this); // 현재 시점의 레코드셋

                        // 특성(Attribute) 읽어오기

                        var html = "<div>" + $entry.attr('CompanyType')

                            + "</div>"; // Private

                        // 하위 엘리먼트 읽어오기

                        html += "<div>" + $entry.find("CompanyName").text()

                            + "</div>"; // 닷넷코리아

                        $('#ctlGrid').html(html);

                    });

                });

            });

        });

    </script>

</head>

<body>

    <input type="button" id="btn" value="회사소개" />

    <div id="ctlGrid"></div>

</body>

</html>

'jQuery' 카테고리의 다른 글

jquery 유효성 검사  (0) 2012.02.09
jQuery 스크롤 올리기  (0) 2012.02.07
jquery 동적 js 실행  (0) 2012.01.10
jQuery json load  (0) 2012.01.10
jquery 정리  (0) 2011.12.26
블로그 이미지

스마트전

,

jquery 동적 js 실행

jQuery 2012. 1. 10. 17:40

-------------------------------

// JSON 데이터

var tableData = [

    { "Num": "1", "Name": "홍길동", "Title": "안녕" },

    { "Num": "2", "Name": "백두산", "Title": "방가" },

    { "Num": "3", "Name": "임꺽정", "Title": "또봐" }

];

 

var htmls = '';

 

htmls += "<table border='1'>"

htmls += "<tr><th>번호</th><th>이름</th><th>제목</th></tr>";

$.each(tableData, function() {

    htmls += "<tr>";

    htmls += "<td>" + this['Num'] + "</td>";

    htmls += "<td>" + this['Name'] + "</td>";

    htmls += "<td>" + this['Title'] + "</td>";

    htmls += "</tr>";

});

 

htmls += "</table>";

 

$('#ctlGrid').html(htmls); // ctlGrid 포함될 HTML 있는 레이어

==================================

03.JQuery.getScript.htm

-----------------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>하나의 완성된 자바스크립트 파일을 동적 로드/실행</title>

    <script src="../Js/jquery-1.3.2-vsdoc2.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function() {

            $("#btn").click(function() {

                // 아래 코드가 실행되는 시점에 js 파일의 기능 실행됨

                $.getScript('03.jQuery.getScript.js');

            });

        });

    </script>

</head>

<body>

<input type="button" id="btn" value="표그리기" />

<div id="ctlGrid">

</div>

</body>

</html>

'jQuery' 카테고리의 다른 글

jQuery 스크롤 올리기  (0) 2012.02.07
XML HTML로 로드 하기  (0) 2012.01.10
jQuery json load  (0) 2012.01.10
jquery 정리  (0) 2011.12.26
아주쉬운 jQuery & jQuery Ajax  (0) 2011.10.11
블로그 이미지

스마트전

,

jQuery json load

jQuery 2012. 1. 10. 17:36

02.JQuery.getJSON.js

--------------------------------

[

    {

        "Num": "1",

        "Name": "홍길동"

    },

    {

        "Num": "2",

        "Name": "백두산"

    },

    {

        "Num": "3",

        "Name": "한라산"

    },

    {

        "Num": "4",

        "Name": "북한산"

    },

    {

        "Num": "5",

        "Name": "도봉산"

    },

    {

        "Num": "6",

        "Name": "뒷산"

    }

]

=========================================

02.JQuery.getJSON.htm

------------------------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>비동기적으로 JSON파일 로드</title>

    <script src="../Js/jquery-1.3.2-vsdoc2.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function() {

            $("#btn .btnLoad").click(function() {

                $.getJSON("02.jQuery.getJSON.js", function(data) {

                    $('#pnlDisplay').empty(); // 패널(div) 내용 초기화

                    var table = "<table border='1'><tr><td>인덱스</td><td>번호</td><td>이름</td></tr>";

                    // data 탐색 : each() 메서드를 사용해서 데이터가 있는만큼 반복

                    $.each(data, function(index, entry) {

                        table += '<tr>';

                        table += '<td>' + index + '</td>';

                        table += '<td>' + entry["Num"] + '</td>';

                        if (entry["Name"]) { //특정 필드를 비교할 이러한 표현법 사용

                            table += '<td>' + entry["Name"] + '</td>';

                        }

                        table += '</tr>';

                    });

                    table += "</table>";

                    $('#pnlDisplay').append(table); // 패널에 추가하기

                });

            });

 

        });

    </script>

</head>

<body>

    <div id="btn"><div class="btnLoad">HTML읽어오기</div></div>

    <div id="pnlDisplay">

    </div>

</body>

</html>

 


'jQuery' 카테고리의 다른 글

XML HTML로 로드 하기  (0) 2012.01.10
jquery 동적 js 실행  (0) 2012.01.10
jquery 정리  (0) 2011.12.26
아주쉬운 jQuery & jQuery Ajax  (0) 2011.10.11
jQuery 커버플로우  (0) 2011.07.29
블로그 이미지

스마트전

,

jquery 정리

jQuery 2011. 12. 26. 09:31

 $.ajax({           // 실행 함수
  type:"POST",      // get.post 가능
  url:"ajax.jsp",       // 호출 url
  dataType: "json",              //date 타입  xml,text 등
  data:"point=1&gift=2",   // url 에 보낼 파라미터 값
  timeout:3000,              //제한시간 설정 가능
  cache:false,                // true, false
  error:function(request, status, error){   // 에러 발생 시   status 400 이 성공 그 외 404, 500 등
   alert("에러!");
  },
  success:function(msg){     // 성공 시 콜백  msg 에 data
   alert("성공");
  },
  beforeSend:function(){     // ajax 통신을 시작하기 전에 콜백
   alert("통신시작");
  },
  complete:function(){        //완료 후 실행할 콜백 함수 정의
   alert("통신완료");
  }
 });

 /**
  *  상황에 따라 적절하게 함수 사용 아래 상황 예제 샘플
  *  html document  완성 시  onload 와 유사함
  */
  jQuery(document).ready(function(){
   $.ajax({
    type:"GET",
    url:"ajax.jsp",
    data:param,
    success:function(msg){
     html_id.innerHTML = msg;    // text 로 태그 통신 시 html 삽입 하기
     $('.html_id').append(msg);    // 위와 같은 jQuery 방식 이거 쓰지마셈
     // '.html_id' <-- 이놈은 <div class='html_id'></div>
     // '#html_id' <-- 이놈은 <div id='html_id'></div>
     // 선언을 어떻게 하냐에 틀리고 적절하게 사용 하면 됨
    }
   });
  });

  /**
   * 엘리먼트 클릭 등 dom 의 변화에 따른 이벤트  id , class 등 지정 가능
   *  Ex id = # , class 는 . 으로 구분 css 문법과 같음~!
   */
 $(function() {
  $('#divId').click(function() {  // function 으로 감싸지 않고 아래의 예제처럼도 사용가능
   $.ajax({
    type:"GET",
    url:"ajax.jsp",
    data:"page="+3,
    success:function(msg){
     html_id.innerHTML = msg;    // text 로 태그 통신 시 html 삽입 하기
     $('.html_id').append(msg);    // 위와 같은 jQuery 방식
    }
   });
  });
 }); 
 
 /**
 * form submit 시 콜백 id, class 등 지정
 */
 $("formName").submit(function(){
  
 });
 
  /**
  * 함수 호출을 통한 ajax
  * <a href='board_list.php?page=1&code=2' >page전환</a> <--이거를
  * <a href='paging(1,2)' >page전환</a> 이런식으로 함수에 보내서 하면 되겠지~?
  */
 function paging(page,code){
  // POST 방식도 아래 param 처럼 만들어서 보내면 됨
  var param = "board_code="+code+"&page="+page;
  $.ajax({
   type:"GET",
   url:"board_list.php",
   dataType: "text",  
   data:param,
   success:function(msg){
    board_list_area.innerHTML = msg;
   }
  });
 }

 $(function() {
  $('[name=samju]').click(function() { 
   alert($(this).val());
  });
 }); 

 $(function() {
  $('[name=samju]').click(function() { 
   $(this).val(function(index,value){
    alert(this.value);
    alert(this.index);
   });
  });
 }); 

  $("button").click(function () {
      var text = $(this).text();
      $("input").val(text);
    });


  $("input").keyup(function () {
      var value = $(this).val();
      $("p").text(value);
    }).keyup();

 $('select.foo option:selected').val();    // 드롭박스에서 선택된 것을 가져옴
 $('select.foo').val();                    // 드롭박스에서 좀더 쉽게 값을 가져옴
 $('input:checkbox:checked').val();        // 체크가 된 체크박스의 값을 가져옴
 $('input:radio[name=bar]:checked').val(); // 라디오버튼 중 선택된 값을 가져옴

/**

<p>
  Once there was a <em title="huge, gigantic">large</em> dinosaur...
</p>

  The title of the emphasis is:<div></div>
  em 태그에서 title 속성을 가져와 title 변수로 넣음
**/

var title = $("em").attr("title");
  $("div").text(title);

  $('#greatphoto').attr({
   alt: 'Beijing Brush Seller',
   title: 'photo by Kelly Clark',
   src : './img/image.jpg'
});
// ID 가 greatphoto 인 이미지 태그에서 attr 속성을 불러오며 바로 값도 넣을 수 있음

$("button:gt(1)").attr("disabled","disabled"); // 버튼등의 비활성도 가능

/**
 <div></div>
  <div></div>
  <div></div>
 **/


    $("div").html("<b>Wow!</b> Such excitement...");
    $("div b").append(document.createTextNode("!!!")) .css("color", "red");

// Wow!!!! Such excitement...   Wow   와  Such excitement 사이에 !!! 빨간색 텍스트를 추가

 

//----------------------------------------------------------
// 배열 관련

var x = [0, 3, 1, 2];
console.log(x.reverse()); // x = [2, 1, 3, 0]
console.log(x.join(" – ")); // x = "2 - 1 - 3 - 0"
console.log(x.pop()); // x = [2, 1, 3]
console.log(x.unshift(-1)); // x = [-1, 2, 1, 3]
console.log(x.shift()); // x = [2, 1, 3]
console.log(x.sort()); // x = [1, 2, 3]
console.log(x.splice(1, 2)); // x = [2, 3]


// <div>Click here</div> 클릭 하면 파란색으로 바꾸기 파란색 -> 검정색 이런식..
$(document.body).click(function () {
      $("div").each(function (i) {
        if (this.style.color != "blue") {
          this.style.color = "blue";
        } else {
          this.style.color = "";
        }
      });
    });


/**
  <div></div>
  <div></div>
  <div id="stop">Stop here</div>
  <div></div>
 
3번 째 div 를 만나면 stop   false 를 리턴하면 멈춤
**/

 $("button").click(function () {
      $("div").each(function (index, domEle) {
        // domEle == this
        $(domEle).css("backgroundColor", "yellow");
        if ($(this).is("#stop")) {
          $("span").text("Stopped at div index #" + index);
          return false;
        }
      });
    });

 

/**

reverse() : 배열 순서를 뒤집기
 join('key') : key 값으로 배열요소를 문자열로 만들어줌
pop() : 배열의 맨 마지막 요소를 삭제하고 삭제된 해당 값을 반환함
unshift(값) : 값을 배열의 0번째 요소에 삽입하고 이전 요소를 하나씩 뒤로 밀어낸 후, 배열의 길이를 반환함(ie는 undefined를 반환함)
shift() : 배열의 맨 처음 요소를 삭제하고 삭제된 해당 값을 반환함
splice(index, 몇개) : index위치 부터 몇개를 삭제한 후 삭제된 요소들을 반환해 줍니다.


**/

// $.inArray(value, array);    값으로 배열 index 찾기
var index = $.inArray(2, [1, 2, 3, 4, 5]);          // 해당 index 변수에는 1이 할당된다.


$.makeArray(object);
//NodeList와 같은 변환될 유사 배열 객체, 이 함수를 사용하면 jQuery를 사용하지 않고 XML 문서를 순회할 때 NodeList 객체를 편리하게 다룰 수 있다


// 마우스 오버 이벤트 샘플
$("li.fade").hover(function(){$(this).fadeOut(100);$(this).fadeIn(500);});

$("li").hover(
  function () {
    $(this).append($("<span> ***</span>"));    //.appendTo("<span> ***</span>"") 마지막 요소에 추가
  },
  function () {
    $(this).find("span:last").remove();
  }
);


// Text 붙이기
// div class="inner">Hello</div>

$('<p>Test</p>').insertAfter('.inner');  //class inner 뒤에 <p> Tag 를 붙임  반대  .insertAfter()  앞에 붙이기  $('.inner').after('<p>Test</p>');

// Tag 를 DIV 로 감싸기

// <div class="inner">Hello</div>
//   <div class="new">
// <div class="inner">Hello</div>
//</div>

$('.inner').wrap('<div class="new" />');  // 위와 같이 태그를 감쌀 수 있음   // .wrapAll( wrappingElement )  로 많이 사용?

 

'jQuery' 카테고리의 다른 글

jquery 동적 js 실행  (0) 2012.01.10
jQuery json load  (0) 2012.01.10
아주쉬운 jQuery & jQuery Ajax  (0) 2011.10.11
jQuery 커버플로우  (0) 2011.07.29
jQuery 유용한 함수(?) eq  (0) 2011.06.23
블로그 이미지

스마트전

,