SlideShare a Scribd company logo
1 of 20
HACOSA jQuery STUDY
#2. jQuery로 요소 선택하기
소개
• selector 엔진
   ‒ CSS 1 – 3 명세서에 기술된 selector들을 지원
   ‒ 특별한 상태와 특성을 이용하여 요소를 선택하는데 사용할 수 있는 사용자
     정의 셀렉터(costom selector) 포함
   $(‘#id’);                        // ID name 으로 접근
   $(‘.class’);                     // class name으로 접근
   $(‘elementName’);                // element name 으로 접근                  $(‘div’);
   $(‘elementName#id);              // 특정 ID를 가진 요소                        $(‘div#content’);
   $(‘elementName.class);                       // 특정 class를 가진 요소                     $(‘li.menu’);
   $(‘#id elementName’);            // 특정 ID 요소내의 특정 요소 $(‘#header a);
   $(‘#id > .class’);               // 특정 ID 요소의 특정 class 직속자식요소 $(‘#head > .menu’);
   $(‘elementName, elementName, …’); // 여러 개의 요소              $(‘div,p,blockquote’);
자식 요소 찾기
• 자식 결합자(>) 사용
  ‒ CSS 2 의 “ > “ selector와 동일
  ‒ 부모 요소의 특정 자식 요소를 반환
 ‒ $(‘Parent Element Name > Childe Element Name’)



  <a href=“/category”>Category</a>
  <ul id=“nav”>
    <li><a href=“#anchor1”>Anchor 1</a></li>
    <li><a href=“#anchor2”>Anchor 2</a></li>
    <li><span><a href=“#anchor2”>Anchor 2</a></span></li>
  </ul>
  <script type=“text/JavaScript”>
     alert($(‘#nav li > a’).length);
  </script>

  Q. alert은 몇 을 출력하게 될까?
자식 요소 찾기
• children( ) method 사용
   ‒ children() : 부모의 모든 자식 요소를 반환. children(‘*’)과 동일
   ‒ children(selector) : 부모의 특정 자식 요소를 반환
   ‒ $(parent selector).children([selector])
   <a href=“/category”>Category</a>
   <ul id=“nav”>
     <li><a href=“#anchor1”>Anchor 1</a></li>
     <li><a href=“#anchor2”>Anchor 2</a></li>
     <li><span><a href=“#anchor2”>Anchor 2</a></span></li>
   </ul>
   <script type=“text/JavaScript”>
      alert($(‘#nav li’).children().length);
      alert($(‘#nav li’).children(‘a’).length);
   </script>


   Q. alert 은 각각 몇 을 출력할까?
   Q. alert($(‘#anchor1’).children().length); 는 몇을 출력하게 될까?
특정 형제들 선택하기
• 인접 형제 요소 : 인접형제 결합자(+) 사용
  ‒ CSS 2의 “ + “ selector와 동일한 결합자
  ‒ $(‘base+ target’)
  ‒ $(base selector).next(target selector) 와 동일

   <p id=“p1”>Paragraph 1</p>
   <ul id=“nav”>
     <li><a href=“#anchor1”>Anchor 1</a></li>
     <li><a href=“#anchor2”>Anchor 2</a></li>
     <li><span><a href=“#anchor2”>Anchor 2</a></span></li>
   </ul>
   <p id=“p2”>Paragraph 2</p>
   <script type=“text/JavaScript”>
      alert($(‘#nav + p’).length);
   </script>


   Q. alert 은 몇을 출력할까?
   Q. alert($(‘#nav + p’).attr(‘id’)) 가 출력하는 내용은?
특정 형제들 선택하기
• 모든 형제 요소 : silblings( ) method 사용
  ‒ 인접함의 상관 없이 모든 형제 요소 반환
  ‒ $(selector).siblings() : 모든 형제 요소 반환
  ‒ $(selector).siblings(selector) : 특정 형제 요소 반환

   <a href=“www.naver.com”>네이버</a>
   <p id=“p1”>Paragraph 1</p>
   <ul id=“nav”>
     <li><a href=“#anchor1”>Anchor 1</a></li>
     <li><a href=“#anchor2”>Anchor 2</a></li>
     <li><span><a href=“#anchor2”>Anchor 2</a></span></li>
   </ul>
   <p id=“p2”>Paragraph 2</p>
   <script type=“text/JavaScript”>
      alert($(‘#nav ’).siblings().length);
      alert($(‘#nav ’).siblings(‘p’).length);
   </script>

   Q. alert 은 각각 몇 을 출력할까?
특정 형제들 선택하기
• 선택된 요소 이후의 모든 형제 요소                                : 일반형제 결합자(~) 사용
 ‒ CSS3의 “ ~ “ 선택자와 동일
 ‒ $(‘base ~ target’)

    <a href=“www.naver.com”>네이버</a>
    <p id=“p1”>Paragraph 1</p>
    <ul id=“nav”>
      <li><a href=“#anchor1”>Anchor 1</a></li>
      <li><a href=“#anchor2”>Anchor 2</a></li>
      <li><span><a href=“#anchor2”>Anchor 2</a></span></li>
    </ul>
    <p id=“p2”>Paragraph 2</p>
    <p id=“p3”>Paragraph 3</p>
    <script type=“text/JavaScript”>
       alert($(‘#nav ~ p ’).length);
    </script>

    Q. alert 은 각각 몇 을 출력할까?
인덱스 순서로 요소 선택하기
• jQuery Filter 이용

   Filter   Description             Example
   :first   첫 번째 선택 요소              $(‘ol li:first’);
   :last    마지막 선택 요소               $(‘ol li:last’);
   :even    짝수 요소 (0부터 인덱스)         $(‘ol li:even’);
   :odd     홀수 요소 (0부터 인덱스)         $(‘ol li:odd’);
   :eq(n)   (n)번째 인덱스에 해당하는 단일 요소   $(‘ol li:eq(0)’);
   :lt(n)   (n)번째 보다 다음에 있는 모든 요소   $(‘ol li:lt(0)’);
   :gt(n)   (n)번째 보다 앞에 있는 모든 요소    $(‘ol li:gt(1)’);

                               ※ (n)이 음수이면 마지막 인덱스부터 거꾸로 계산
현재 애니메이션 중인 요소 선택
• :animated Filter 이용
   ‒ $(‘[element]:animated’)
      $(‘div:not(div:animated)’).animate({height:100});

  ‒ ref) 현재 요소가 애니메이션 중인지 확인 하는 법
     →is() method 사용
     →$(‘target’).is(‘:animated’)
무엇을 포함하고 있는지에 따라 요소 선택하기
• 특정 텍스트 컨텐츠를 포함한 요소 선택
  ‒ :contains Filter 사용
  ‒ $(‘[element]:contains(text)’)

   <span>Hellow Bob!</span>
   <script type=“text/JavaScript”>
      $(‘span:contains(“Bob”)’);
   </script>

 ‒ filter() Method와 정규식 사용
   $(selector).filter(function(){
      return [정규식].test($(this).text());
   }
무엇을 포함하고 있는지에 따라 요소 선택하기
• 특정 요소를 포함하는 요소 선택
  ‒ :has Filter 사용
  ‒ $(‘:has(selector)’)

   <div>
      <p>Paragraph 1</p>
      <p>
          Naver : <a href=“www.naver.com”>Go Naver</a>
          Daum : <a href=“www.daum.net” class=“newWin”>Go Daum</a>
          Nate : <a href=“www.nate.com” class=“newWin”>Go Nate</a>
      </p>
   </div>
   <script type=“text/JavaScript”>
      alert($(‘p:has(a)).length);
   </script>

   Q. 위 페이지 실행 시 얼럿에 뜨는 숫자는?
   Q. alert($(‘p:has(.newWin)).length 실행 시 뜨는 숫자는?
일치되지 않는 요소 선택
• :not Filter 사용
   ‒ $(‘:not(selector)’)
      <li><a href=“www.naver.com”>go naver</a></li>
      <li><a href=“www.daum.net”>go daum</a></li>
      <li><a href=“www.nate.com” class=“selected”>go nate</a></li>
      <li><a href=“www.yahoo.com”>go yahoo</a></li>
      <li><a href=“www.google.com”>go google</a></li>

      <script>
         alert($(“a:not(‘.selected’) ").length);
         alert($(“li:not(li:lt(2))).length);
         alert($(“a:not(li a)”).length);
      </script>


      Q. 위 페이지 실행 시 얼럿에 각각 뜨는 숫자는?
가시성을 기반으로 요소 선택
• 눈에 보이는지 보이지 않는지에 따라 요소 선택
  ‒ :hidden 또는 :visible Filter 이용
  ‒ 주의! 1.3.2 ver 이전에서는 visibility 속성을 기반으로 동작
    이후 버전에서는 요소의 width, height를 검사
   <div>
      <p style=“display:none”>Paragraph 1</p>
      <p>
          Naver : <a href=“www.naver.com”>Go Naver</a>
          Daum : <a href=“www.daum.net” class=“newWin”>Go Daum</a>
          Nate : <a href=“www.nate.com” class=“newWin”>Go Nate</a>
      </p>
   </div>
   <script type=“text/JavaScript”>
      alert($(‘p:has(a)).length);
   </script>

   Q. 위 페이지 실행 시 얼럿에 뜨는 숫자는?
   Q. style=“width:0px;height:0px” 일 경우 얼럿에 뜨는 숫자는 몇이 될까?
어트리뷰트 기반으로 요소 선택
• 어트리뷰트와 어트리뷰트 값으로 요소 선택

  사용법           설명                                        사용예
  [attr]        특정 어트리뷰트를 가진 요소                           $(‘a[title][href]’)

  [attr=val]    지정된 어트리뷰트가 지정된 값을 가진 요소                   $(‘a[title=“naver”])

  [attr!=val]   지정된 어트리뷰트나 값을 갖지 않는 요소                    $(‘a[title!=“naver”])

  [attr^=val]   지정된 어트리뷰트가 지정된 값으로 시작하는 요소                $(‘a[title^=“na”])

  [attr$=val]   지정된 어트리뷰트가 지정된 값으로 끝나는 요소                 $(‘a[title^=“er”])

  [attr~=val]   공백과 함께 특정 값을 포함하는 요소                      $(‘a[title~=“naver”])
                (단, 특정 값은 완전한 단어만 처리됨.
                [attr~=“er”]인 경우 title=“naver”은 불일치 처리)
형식에 따라 폼 요소 선택
• jQuery Filter 이용

    Filter        Selected Element
    :text         <input type=“text” />
    :password     <input type=“password” />
    :radio        <input type=“radio” />
    :checkbox     <input type=“checkbox” />
    :submit       <input type=“submit” />
    :image        <input type=“image” />
    :reset        <input type=“reset” />
    :button       <input type=“button” />
    :file         <input type=“file” />
    :hidden       <input type=“hidden” />


• :input Filter
   ‒ 모든 input, textarea, button, select를 선택
특성을 갖는 요소 선택하기
• 다른 요소와의 관계, 어트리뷰트, 셀렉터 식으로 표현하기 어려
  운 매우 특별한 특성으로 요소를 찾을 경우
• filter() method 사용
• $(selector).filter([selector|function|element|jQuery Object])

   $(‘div’).filter(fucntion(){
       var width = $(this).width();
       return width > 100 && width < 200;
   });
   // width 가 100px ~ 200px 사이인 div 반환
컨텍스트 매개변수 사용하기
• 컨텍스트란?
  ‒ jQuery가 셀렉터 식에 의해 매치되는 요소를 찾을 장소
• 두 번째 매개변수로 특정 컨텍스트 지정
  $(‘p’, ‘#content’);
  // ID가 content인 요소 내의 <p> 요소 반환
사용자정의 필터 셀렉터 만들기
• filter 를 확장시키는 방법
• $.expr[‘:’].newFilter = function(elem, index, match){
            return [반환할 컬렉션 정의문];
 }
     <li><a href=“www.naver.com” class=“newWin”>go naver</a></li>
     <li><a href=“www.daum.net” class=“newWin”>go daum</a></li>
     <li><a href=“www.nate.com” class=“newWin”>go nate</a></li>
     <li><a href=“www.yahoo.com”>go yahoo</a></li>
     <li><a href=“www.google.com”>go google</a></li>
     <script type=“text/JavaScript”>
         $.expr[':'].newWin = function(elem){
            return $(elem).attr('class') == 'newWin';
         }
         alert($('a:newWin').length);
     </script>
<li><a href=“www.naver.com” class=“newWin”>go naver</a></li>
<li><a href=“www.daum.net” class=“newWin”>go daum</a></li>
<li><a href=“www.nate.com” class=“newWin”>go nate</a></li>
<li><a href=“www.yahoo.com”>go yahoo</a></li>
<li><a href=“www.google.com”>go google</a></li>
<script type=“text/JavaScript”>
    $.extend($.expr[':'], {
        newWin : function(elem){
           return $(elem).attr('class') == 'newWin';
        },
        currWin : function(elem){
           return $(elem).attr('class') != 'newWin';
        }
    });
    alert($('a:newWin').length);
    alert($('a:currWin').length);
</script>
END

More Related Content

What's hot

Jquery javascript_ed10
Jquery javascript_ed10Jquery javascript_ed10
Jquery javascript_ed10hungrok
 
자바야 놀자 PPT
자바야 놀자 PPT자바야 놀자 PPT
자바야 놀자 PPTJinKyoungHeo
 
Java advancd ed10
Java advancd ed10Java advancd ed10
Java advancd ed10hungrok
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13hungrok
 
처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4성일 한
 
5-4. html5 offline and storage
5-4. html5 offline and storage5-4. html5 offline and storage
5-4. html5 offline and storageJinKyoungHeo
 
[PyCon Korea 2019] 파이썬의 변수
[PyCon Korea 2019] 파이썬의 변수[PyCon Korea 2019] 파이썬의 변수
[PyCon Korea 2019] 파이썬의 변수Insuk (Chris) Cho
 
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈jihoon kim
 
Web server page_ed10
Web server page_ed10Web server page_ed10
Web server page_ed10hungrok
 
처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3성일 한
 
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기Jeado Ko
 
처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1성일 한
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기Jeado Ko
 
웹동네 JSJQ 실무기초 스터디 1주차-제이쿼리기초1
웹동네 JSJQ 실무기초 스터디 1주차-제이쿼리기초1웹동네 JSJQ 실무기초 스터디 1주차-제이쿼리기초1
웹동네 JSJQ 실무기초 스터디 1주차-제이쿼리기초1Kim Sehwan
 
파이썬 모듈 패키지
파이썬 모듈 패키지파이썬 모듈 패키지
파이썬 모듈 패키지SeongHyun Ahn
 

What's hot (20)

Jquery javascript_ed10
Jquery javascript_ed10Jquery javascript_ed10
Jquery javascript_ed10
 
자바야 놀자 PPT
자바야 놀자 PPT자바야 놀자 PPT
자바야 놀자 PPT
 
Java advancd ed10
Java advancd ed10Java advancd ed10
Java advancd ed10
 
Hacosa j query 4th
Hacosa j query 4thHacosa j query 4th
Hacosa j query 4th
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13
 
처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4
 
5-4. html5 offline and storage
5-4. html5 offline and storage5-4. html5 offline and storage
5-4. html5 offline and storage
 
GraphQL 적용기
GraphQL 적용기GraphQL 적용기
GraphQL 적용기
 
[PyCon Korea 2019] 파이썬의 변수
[PyCon Korea 2019] 파이썬의 변수[PyCon Korea 2019] 파이썬의 변수
[PyCon Korea 2019] 파이썬의 변수
 
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
 
Hacosa j query 11th
Hacosa j query 11thHacosa j query 11th
Hacosa j query 11th
 
Web server page_ed10
Web server page_ed10Web server page_ed10
Web server page_ed10
 
처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3
 
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
 
Javascript
JavascriptJavascript
Javascript
 
처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기
 
Class10
Class10Class10
Class10
 
웹동네 JSJQ 실무기초 스터디 1주차-제이쿼리기초1
웹동네 JSJQ 실무기초 스터디 1주차-제이쿼리기초1웹동네 JSJQ 실무기초 스터디 1주차-제이쿼리기초1
웹동네 JSJQ 실무기초 스터디 1주차-제이쿼리기초1
 
파이썬 모듈 패키지
파이썬 모듈 패키지파이썬 모듈 패키지
파이썬 모듈 패키지
 

Viewers also liked

The characteristics of effective teachers
The characteristics of effective teachersThe characteristics of effective teachers
The characteristics of effective teacherssyamim03
 
Zoo project powerpoint anthro 101 lizbeth perez
Zoo project powerpoint anthro 101 lizbeth perezZoo project powerpoint anthro 101 lizbeth perez
Zoo project powerpoint anthro 101 lizbeth perezlizbethperez01
 
Hacosa js study 1주차
Hacosa js study 1주차Hacosa js study 1주차
Hacosa js study 1주차Seong Bong Ji
 
Tw fables 09 天水婶
Tw fables 09 天水婶Tw fables 09 天水婶
Tw fables 09 天水婶LEGOO MANDARIN
 
Lecture by Le Tien Dat
Lecture by Le Tien DatLecture by Le Tien Dat
Lecture by Le Tien Datixusvietnam
 
ps424 lafayette FINAL
ps424 lafayette FINALps424 lafayette FINAL
ps424 lafayette FINALSteven Titch
 
My project of life ivan sanchez
My project of life ivan sanchezMy project of life ivan sanchez
My project of life ivan sanchezViviana Stefanni
 
العوامل التى تؤثر فى اعداد الرسومات التعليمية
العوامل التى تؤثر فى اعداد الرسومات التعليميةالعوامل التى تؤثر فى اعداد الرسومات التعليمية
العوامل التى تؤثر فى اعداد الرسومات التعليميةReham Hussien
 
電腦應用的領域 – 娛樂
電腦應用的領域 – 娛樂電腦應用的領域 – 娛樂
電腦應用的領域 – 娛樂raymondku79
 
超級布農小獵人
超級布農小獵人超級布農小獵人
超級布農小獵人ShaoPei Chang
 

Viewers also liked (20)

Hacosa j query 8th
Hacosa j query 8thHacosa j query 8th
Hacosa j query 8th
 
Hacosa js study 7th
Hacosa js study 7thHacosa js study 7th
Hacosa js study 7th
 
Hacosa js study 8th
Hacosa js study 8thHacosa js study 8th
Hacosa js study 8th
 
The characteristics of effective teachers
The characteristics of effective teachersThe characteristics of effective teachers
The characteristics of effective teachers
 
Hacosa j query 6th
Hacosa j query 6thHacosa j query 6th
Hacosa j query 6th
 
Open cpn
Open cpnOpen cpn
Open cpn
 
Zoo project powerpoint anthro 101 lizbeth perez
Zoo project powerpoint anthro 101 lizbeth perezZoo project powerpoint anthro 101 lizbeth perez
Zoo project powerpoint anthro 101 lizbeth perez
 
Magnetismo 1
Magnetismo 1Magnetismo 1
Magnetismo 1
 
Hacosa js study 1주차
Hacosa js study 1주차Hacosa js study 1주차
Hacosa js study 1주차
 
Tw fables 09 天水婶
Tw fables 09 天水婶Tw fables 09 天水婶
Tw fables 09 天水婶
 
Lecture by Le Tien Dat
Lecture by Le Tien DatLecture by Le Tien Dat
Lecture by Le Tien Dat
 
果園裏的寶藏
果園裏的寶藏果園裏的寶藏
果園裏的寶藏
 
WK10AssgnBenjaminE
WK10AssgnBenjaminEWK10AssgnBenjaminE
WK10AssgnBenjaminE
 
Nature endormie
Nature endormieNature endormie
Nature endormie
 
4 Principles of product stewardship
4 Principles of product stewardship4 Principles of product stewardship
4 Principles of product stewardship
 
ps424 lafayette FINAL
ps424 lafayette FINALps424 lafayette FINAL
ps424 lafayette FINAL
 
My project of life ivan sanchez
My project of life ivan sanchezMy project of life ivan sanchez
My project of life ivan sanchez
 
العوامل التى تؤثر فى اعداد الرسومات التعليمية
العوامل التى تؤثر فى اعداد الرسومات التعليميةالعوامل التى تؤثر فى اعداد الرسومات التعليمية
العوامل التى تؤثر فى اعداد الرسومات التعليمية
 
電腦應用的領域 – 娛樂
電腦應用的領域 – 娛樂電腦應用的領域 – 娛樂
電腦應用的領域 – 娛樂
 
超級布農小獵人
超級布農小獵人超級布農小獵人
超級布農小獵人
 

Similar to Hacosa j query 2th

Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdfHyosang Hong
 
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화Jinhwa Ko
 
9 object class
9 object class9 object class
9 object class웅식 전
 
파이썬 크롤링 모듈
파이썬 크롤링 모듈파이썬 크롤링 모듈
파이썬 크롤링 모듈Yong Joon Moon
 
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Kyoung Up Jung
 
정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]
정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]
정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]WSConf.
 
Html5&css 3장
Html5&css 3장Html5&css 3장
Html5&css 3장홍준 김
 
First Step In Ajax Korean
First Step In Ajax KoreanFirst Step In Ajax Korean
First Step In Ajax KoreanTerry Cho
 
웹성능최적화 20130405
웹성능최적화 20130405웹성능최적화 20130405
웹성능최적화 20130405주형 전
 
막하는 스터디 네 번째 만남 AngularJs (20151108)
막하는 스터디 네 번째 만남 AngularJs (20151108)막하는 스터디 네 번째 만남 AngularJs (20151108)
막하는 스터디 네 번째 만남 AngularJs (20151108)연웅 조
 
09장 객체와 클래스 (고급)
09장 객체와 클래스 (고급)09장 객체와 클래스 (고급)
09장 객체와 클래스 (고급)유석 남
 
Cappuccino fundamental
Cappuccino fundamentalCappuccino fundamental
Cappuccino fundamentalJeongHun Byeon
 
Apache solr소개 20120629
Apache solr소개 20120629Apache solr소개 20120629
Apache solr소개 20120629Dosang Yoon
 
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)Ukjae Jeong
 
vine webdev
vine webdevvine webdev
vine webdevdcfc1997
 
Dependency Injection 소개
Dependency Injection 소개Dependency Injection 소개
Dependency Injection 소개beom kyun choi
 
PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지Yoonwhan Lee
 

Similar to Hacosa j query 2th (20)

Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdf
 
3-2. selector api
3-2. selector api3-2. selector api
3-2. selector api
 
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
 
9 object class
9 object class9 object class
9 object class
 
파이썬 크롤링 모듈
파이썬 크롤링 모듈파이썬 크롤링 모듈
파이썬 크롤링 모듈
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기
 
정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]
정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]
정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]
 
Html5&css 3장
Html5&css 3장Html5&css 3장
Html5&css 3장
 
First Step In Ajax Korean
First Step In Ajax KoreanFirst Step In Ajax Korean
First Step In Ajax Korean
 
웹성능최적화 20130405
웹성능최적화 20130405웹성능최적화 20130405
웹성능최적화 20130405
 
막하는 스터디 네 번째 만남 AngularJs (20151108)
막하는 스터디 네 번째 만남 AngularJs (20151108)막하는 스터디 네 번째 만남 AngularJs (20151108)
막하는 스터디 네 번째 만남 AngularJs (20151108)
 
09장 객체와 클래스 (고급)
09장 객체와 클래스 (고급)09장 객체와 클래스 (고급)
09장 객체와 클래스 (고급)
 
Cappuccino fundamental
Cappuccino fundamentalCappuccino fundamental
Cappuccino fundamental
 
Apache solr소개 20120629
Apache solr소개 20120629Apache solr소개 20120629
Apache solr소개 20120629
 
Xe hack
Xe hackXe hack
Xe hack
 
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
 
vine webdev
vine webdevvine webdev
vine webdev
 
Dependency Injection 소개
Dependency Injection 소개Dependency Injection 소개
Dependency Injection 소개
 
PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지
 

Hacosa j query 2th

  • 1. HACOSA jQuery STUDY #2. jQuery로 요소 선택하기
  • 2. 소개 • selector 엔진 ‒ CSS 1 – 3 명세서에 기술된 selector들을 지원 ‒ 특별한 상태와 특성을 이용하여 요소를 선택하는데 사용할 수 있는 사용자 정의 셀렉터(costom selector) 포함 $(‘#id’); // ID name 으로 접근 $(‘.class’); // class name으로 접근 $(‘elementName’); // element name 으로 접근 $(‘div’); $(‘elementName#id); // 특정 ID를 가진 요소 $(‘div#content’); $(‘elementName.class); // 특정 class를 가진 요소 $(‘li.menu’); $(‘#id elementName’); // 특정 ID 요소내의 특정 요소 $(‘#header a); $(‘#id > .class’); // 특정 ID 요소의 특정 class 직속자식요소 $(‘#head > .menu’); $(‘elementName, elementName, …’); // 여러 개의 요소 $(‘div,p,blockquote’);
  • 3. 자식 요소 찾기 • 자식 결합자(>) 사용 ‒ CSS 2 의 “ > “ selector와 동일 ‒ 부모 요소의 특정 자식 요소를 반환 ‒ $(‘Parent Element Name > Childe Element Name’) <a href=“/category”>Category</a> <ul id=“nav”> <li><a href=“#anchor1”>Anchor 1</a></li> <li><a href=“#anchor2”>Anchor 2</a></li> <li><span><a href=“#anchor2”>Anchor 2</a></span></li> </ul> <script type=“text/JavaScript”> alert($(‘#nav li > a’).length); </script> Q. alert은 몇 을 출력하게 될까?
  • 4. 자식 요소 찾기 • children( ) method 사용 ‒ children() : 부모의 모든 자식 요소를 반환. children(‘*’)과 동일 ‒ children(selector) : 부모의 특정 자식 요소를 반환 ‒ $(parent selector).children([selector]) <a href=“/category”>Category</a> <ul id=“nav”> <li><a href=“#anchor1”>Anchor 1</a></li> <li><a href=“#anchor2”>Anchor 2</a></li> <li><span><a href=“#anchor2”>Anchor 2</a></span></li> </ul> <script type=“text/JavaScript”> alert($(‘#nav li’).children().length); alert($(‘#nav li’).children(‘a’).length); </script> Q. alert 은 각각 몇 을 출력할까? Q. alert($(‘#anchor1’).children().length); 는 몇을 출력하게 될까?
  • 5. 특정 형제들 선택하기 • 인접 형제 요소 : 인접형제 결합자(+) 사용 ‒ CSS 2의 “ + “ selector와 동일한 결합자 ‒ $(‘base+ target’) ‒ $(base selector).next(target selector) 와 동일 <p id=“p1”>Paragraph 1</p> <ul id=“nav”> <li><a href=“#anchor1”>Anchor 1</a></li> <li><a href=“#anchor2”>Anchor 2</a></li> <li><span><a href=“#anchor2”>Anchor 2</a></span></li> </ul> <p id=“p2”>Paragraph 2</p> <script type=“text/JavaScript”> alert($(‘#nav + p’).length); </script> Q. alert 은 몇을 출력할까? Q. alert($(‘#nav + p’).attr(‘id’)) 가 출력하는 내용은?
  • 6. 특정 형제들 선택하기 • 모든 형제 요소 : silblings( ) method 사용 ‒ 인접함의 상관 없이 모든 형제 요소 반환 ‒ $(selector).siblings() : 모든 형제 요소 반환 ‒ $(selector).siblings(selector) : 특정 형제 요소 반환 <a href=“www.naver.com”>네이버</a> <p id=“p1”>Paragraph 1</p> <ul id=“nav”> <li><a href=“#anchor1”>Anchor 1</a></li> <li><a href=“#anchor2”>Anchor 2</a></li> <li><span><a href=“#anchor2”>Anchor 2</a></span></li> </ul> <p id=“p2”>Paragraph 2</p> <script type=“text/JavaScript”> alert($(‘#nav ’).siblings().length); alert($(‘#nav ’).siblings(‘p’).length); </script> Q. alert 은 각각 몇 을 출력할까?
  • 7. 특정 형제들 선택하기 • 선택된 요소 이후의 모든 형제 요소 : 일반형제 결합자(~) 사용 ‒ CSS3의 “ ~ “ 선택자와 동일 ‒ $(‘base ~ target’) <a href=“www.naver.com”>네이버</a> <p id=“p1”>Paragraph 1</p> <ul id=“nav”> <li><a href=“#anchor1”>Anchor 1</a></li> <li><a href=“#anchor2”>Anchor 2</a></li> <li><span><a href=“#anchor2”>Anchor 2</a></span></li> </ul> <p id=“p2”>Paragraph 2</p> <p id=“p3”>Paragraph 3</p> <script type=“text/JavaScript”> alert($(‘#nav ~ p ’).length); </script> Q. alert 은 각각 몇 을 출력할까?
  • 8. 인덱스 순서로 요소 선택하기 • jQuery Filter 이용 Filter Description Example :first 첫 번째 선택 요소 $(‘ol li:first’); :last 마지막 선택 요소 $(‘ol li:last’); :even 짝수 요소 (0부터 인덱스) $(‘ol li:even’); :odd 홀수 요소 (0부터 인덱스) $(‘ol li:odd’); :eq(n) (n)번째 인덱스에 해당하는 단일 요소 $(‘ol li:eq(0)’); :lt(n) (n)번째 보다 다음에 있는 모든 요소 $(‘ol li:lt(0)’); :gt(n) (n)번째 보다 앞에 있는 모든 요소 $(‘ol li:gt(1)’); ※ (n)이 음수이면 마지막 인덱스부터 거꾸로 계산
  • 9. 현재 애니메이션 중인 요소 선택 • :animated Filter 이용 ‒ $(‘[element]:animated’) $(‘div:not(div:animated)’).animate({height:100}); ‒ ref) 현재 요소가 애니메이션 중인지 확인 하는 법 →is() method 사용 →$(‘target’).is(‘:animated’)
  • 10. 무엇을 포함하고 있는지에 따라 요소 선택하기 • 특정 텍스트 컨텐츠를 포함한 요소 선택 ‒ :contains Filter 사용 ‒ $(‘[element]:contains(text)’) <span>Hellow Bob!</span> <script type=“text/JavaScript”> $(‘span:contains(“Bob”)’); </script> ‒ filter() Method와 정규식 사용 $(selector).filter(function(){ return [정규식].test($(this).text()); }
  • 11. 무엇을 포함하고 있는지에 따라 요소 선택하기 • 특정 요소를 포함하는 요소 선택 ‒ :has Filter 사용 ‒ $(‘:has(selector)’) <div> <p>Paragraph 1</p> <p> Naver : <a href=“www.naver.com”>Go Naver</a> Daum : <a href=“www.daum.net” class=“newWin”>Go Daum</a> Nate : <a href=“www.nate.com” class=“newWin”>Go Nate</a> </p> </div> <script type=“text/JavaScript”> alert($(‘p:has(a)).length); </script> Q. 위 페이지 실행 시 얼럿에 뜨는 숫자는? Q. alert($(‘p:has(.newWin)).length 실행 시 뜨는 숫자는?
  • 12. 일치되지 않는 요소 선택 • :not Filter 사용 ‒ $(‘:not(selector)’) <li><a href=“www.naver.com”>go naver</a></li> <li><a href=“www.daum.net”>go daum</a></li> <li><a href=“www.nate.com” class=“selected”>go nate</a></li> <li><a href=“www.yahoo.com”>go yahoo</a></li> <li><a href=“www.google.com”>go google</a></li> <script> alert($(“a:not(‘.selected’) ").length); alert($(“li:not(li:lt(2))).length); alert($(“a:not(li a)”).length); </script> Q. 위 페이지 실행 시 얼럿에 각각 뜨는 숫자는?
  • 13. 가시성을 기반으로 요소 선택 • 눈에 보이는지 보이지 않는지에 따라 요소 선택 ‒ :hidden 또는 :visible Filter 이용 ‒ 주의! 1.3.2 ver 이전에서는 visibility 속성을 기반으로 동작 이후 버전에서는 요소의 width, height를 검사 <div> <p style=“display:none”>Paragraph 1</p> <p> Naver : <a href=“www.naver.com”>Go Naver</a> Daum : <a href=“www.daum.net” class=“newWin”>Go Daum</a> Nate : <a href=“www.nate.com” class=“newWin”>Go Nate</a> </p> </div> <script type=“text/JavaScript”> alert($(‘p:has(a)).length); </script> Q. 위 페이지 실행 시 얼럿에 뜨는 숫자는? Q. style=“width:0px;height:0px” 일 경우 얼럿에 뜨는 숫자는 몇이 될까?
  • 14. 어트리뷰트 기반으로 요소 선택 • 어트리뷰트와 어트리뷰트 값으로 요소 선택 사용법 설명 사용예 [attr] 특정 어트리뷰트를 가진 요소 $(‘a[title][href]’) [attr=val] 지정된 어트리뷰트가 지정된 값을 가진 요소 $(‘a[title=“naver”]) [attr!=val] 지정된 어트리뷰트나 값을 갖지 않는 요소 $(‘a[title!=“naver”]) [attr^=val] 지정된 어트리뷰트가 지정된 값으로 시작하는 요소 $(‘a[title^=“na”]) [attr$=val] 지정된 어트리뷰트가 지정된 값으로 끝나는 요소 $(‘a[title^=“er”]) [attr~=val] 공백과 함께 특정 값을 포함하는 요소 $(‘a[title~=“naver”]) (단, 특정 값은 완전한 단어만 처리됨. [attr~=“er”]인 경우 title=“naver”은 불일치 처리)
  • 15. 형식에 따라 폼 요소 선택 • jQuery Filter 이용 Filter Selected Element :text <input type=“text” /> :password <input type=“password” /> :radio <input type=“radio” /> :checkbox <input type=“checkbox” /> :submit <input type=“submit” /> :image <input type=“image” /> :reset <input type=“reset” /> :button <input type=“button” /> :file <input type=“file” /> :hidden <input type=“hidden” /> • :input Filter ‒ 모든 input, textarea, button, select를 선택
  • 16. 특성을 갖는 요소 선택하기 • 다른 요소와의 관계, 어트리뷰트, 셀렉터 식으로 표현하기 어려 운 매우 특별한 특성으로 요소를 찾을 경우 • filter() method 사용 • $(selector).filter([selector|function|element|jQuery Object]) $(‘div’).filter(fucntion(){ var width = $(this).width(); return width > 100 && width < 200; }); // width 가 100px ~ 200px 사이인 div 반환
  • 17. 컨텍스트 매개변수 사용하기 • 컨텍스트란? ‒ jQuery가 셀렉터 식에 의해 매치되는 요소를 찾을 장소 • 두 번째 매개변수로 특정 컨텍스트 지정 $(‘p’, ‘#content’); // ID가 content인 요소 내의 <p> 요소 반환
  • 18. 사용자정의 필터 셀렉터 만들기 • filter 를 확장시키는 방법 • $.expr[‘:’].newFilter = function(elem, index, match){ return [반환할 컬렉션 정의문]; } <li><a href=“www.naver.com” class=“newWin”>go naver</a></li> <li><a href=“www.daum.net” class=“newWin”>go daum</a></li> <li><a href=“www.nate.com” class=“newWin”>go nate</a></li> <li><a href=“www.yahoo.com”>go yahoo</a></li> <li><a href=“www.google.com”>go google</a></li> <script type=“text/JavaScript”> $.expr[':'].newWin = function(elem){ return $(elem).attr('class') == 'newWin'; } alert($('a:newWin').length); </script>
  • 19. <li><a href=“www.naver.com” class=“newWin”>go naver</a></li> <li><a href=“www.daum.net” class=“newWin”>go daum</a></li> <li><a href=“www.nate.com” class=“newWin”>go nate</a></li> <li><a href=“www.yahoo.com”>go yahoo</a></li> <li><a href=“www.google.com”>go google</a></li> <script type=“text/JavaScript”> $.extend($.expr[':'], { newWin : function(elem){ return $(elem).attr('class') == 'newWin'; }, currWin : function(elem){ return $(elem).attr('class') != 'newWin'; } }); alert($('a:newWin').length); alert($('a:currWin').length); </script>
  • 20. END