이벤트 등록 메소드란?

  이벤트란 사이트에서 방문자가 취하는 모든 행위를 말하고, 이벤트 핸들러는 이벤트가 발생했을 때 실행되는

  코드를 말한다.

  이벤트 메소드를 이용하면 방문자가 지정한 요소에서 어떠한 특정 동작이 일어났을 때 저장된 코드를 실행

  시킬 수 있다.

 

  이벤트 등록 메소드에는 하나의 이벤트만 등록할 수 있는 단독 이벤트 등록 메소드와 2개 이상의 이벤트를

  등록할 수 있는 그룹 이벤트 등록 메소드가 있다.

  단독 이벤트 메소드는 한 동작에 대한 이벤트를 등록할 때 사용되는 메소드이다.

  예를 들어 '요소를 클릭했을 때', '요소를 더블클릭했을 때', '요소에 마우스 포인터를 올렸을 때'등 하나의

  이벤트에만 대응하여 이벤트 핸들러 코드가 실행된다.

 

  이벤트의 기본형은 다음과 같다. 

<button id="btn">버튼</button>
$("#btn").click(function(){
  자바스크립트코드;
});

  위 예제에서 버튼($("#btn))을 클릭(.click)했을 때 경고창(스크립트코드)을 나타내라 라는 명령이 있을 경우

  버튼은 이벤트의 대상이 되고 클릭했을 때는 방문자의 특정 동작을 가리키는데, 이는 이벤트 등록 메소드가 된다.

  마지막으로 경고창을 나타내라는 것은 이벤트가 발생했을 때 실행되는 이벤트 핸들러가 된다.

 

  이러한 단독 이벤트 등록 메소드는 로딩 이벤트, 마우스 이벤트, 포커스 이벤트, 키보드 이벤트, 기타 이벤트로

  나눌 수 있다.

  다음 표는 이벤트 등록 메소드의 종류를 정리한 표이다.

 

구분 종류 설명
로딩
이벤트
load() 선택한 이미지 또는 프레임 요소에 연동된 소스의 로딩이 완료된 후 이벤트가 발생
ready() 지정한 HTML 문서 객체의 로딩이 완료된 후 이벤트가 발생
error() 이벤트 대상 요소에서 오류가 발생하면 이벤트가 발생
마우스
이벤트
click() 선택한 요소를 클릭했을 때 이벤트가 발생
dblclick() 선택한 요소를 더블클릭했을 때 이벤트가 발생
mouseout() 선택한 요소의 영역에서 마우스 포포인터 벗어났을 때 이벤트가 발생. 이때 하위 요소의 영향을 받는다.
mouseover() 선택한 요소의 영역에 마우스 포인터를 올렸을 때 이벤트가 발생
hover() 선택한 요소에 마우스 포인터를 올렸을 때와 벗어났을 때 각각 이벤트가 발생한다.
mousedown() 선택한 요소에서 마우스 버튼을 눌렀을 때 이벤트가 발생
mouseup() 선택한 요소에서 마우스 버튼을 눌렀다 떼었을 때 이벤트가 발생
mouseenter() 선택한 요소 범위에 마우스 포인터를 올렸을 때 이벤트가 발생
moseleave() 선택한 요소 범위에서 마우스 포인터가 벗어났을대 이벤트가 발생
mousemove() 선택한 요소 범위에서 마우스 포인터를 움직였을 때 이벤트가 발생
scroll() 가로, 세로 스크롤바를 움직일 때마다 이벤트가 발생
포커스
이벤트
focus() 선택한 요소에 포커스가 생성되었을 때 이벤트를 발생하거나 선택한 요소에 강제로 포커스를 생성
focusin() 선택한 요소에 포커스가 생성되었을 때 이벤트가 발생
focusout() 포커스가 선택한 요소에서 다른 요소로 이동되었을 때 이벤트가 발생
blur() 포커스가 선택한 요소에서 다른 요소로 이동되었을 때 이벤트가 발생하거나 선택한 요소의 포커스가 강제로 사라지도록 한다.
change() 이벤트 대상인 입력 요소의 값이 변경되고, 포커스가 이동하면 이벤트가 발생. 그리고 강제로 change 이벤트를 발생시킬 때도 사용
키보드이벤트 keypress() 선택한 요소에서 키보드를 눌렀을 때 이벤트가 발생. 문자키를 제외한 키의 코드값을 반환
keydown() 선택한 요소에서 키보드를 눌렀을 때 이벤트가 발생. 키보드의 모든 키의 코드값을 반환
keyup() 선택한 요소에서 키보드에서 손을 떼었을 때 이벤트가 발생.

 

이벤트 등록 방식

  지정한 요소에 이벤트를 등록하는 방법에는 단독 이벤트 등록 방식과 그룹 이벤트 등록 방식의 두 종류가 있다.

  예를 들어 마우스 포인터를 올렸을 때 환영 메시지를 출력하려면 단독 이벤트 등록 메소드나 그룹 이벤트 등록

  메소드를 사용하고, 마우스 포인터를 올리거나 클릭했을 때 환영 메시지를 출력하려면 그룹 이벤트 등록 메소드를

  사용한다.

 

  즉, 한가지 동작에 대한 이벤트 등록 방식에는 단독 이벤트 등록 메소드나 그룹 이벤트 등록 메소드를 사용하고,

  두 가지 이상의 동작에 대한 이벤트 등록 방식에는 그룹 이벤트 등록 메소드를 사용한다.

  

단독 이벤트 등록 메소드

  대상에 한가지 동작에 대한 이벤트만 등록할 수 있다.

  다음은 사용하기 위한 기본형이다.

$("이벤트 대상 선택").이벤트 등록 메소드(function(){
  자바스크립트코드;
});

  다음은 사용자가 버튼을 클릭하면 환영 메시지를 경고 창에 나타내는 예제이다.

<button id="btn1">버튼</button>
$(".btn1").click(function(){
  alert("welcome");
});

 

그룹 이벤트 등록 메소드

  대상에 한가지 동작 이상의 이벤트를 등록 할 수 있다.

  다음은 사용하기 위한 기본형이다. on()메소드를 사용하여 이벤트를 등록한다.

1. on()메소드 등록 방식 1
   $("이벤트 대상 선택").on("이벤트 종류1 이벤트종류2...이벤트종류n",
   function(){
     자바스크립트 코드;
   });
   
2. on()메소드 등록 방식 2
   $("이벤트 대상 선택").on({
     "이벤트종류1 이벤트종류2 ... 이벤트종류n":function(){
       자바스크립트코드
     }
   });
   
3. on()메소드 등록 방식 3
   $("이벤트 대상 선택").on(){
     "이벤트 종류1":function(){자바스크립트 코드;1},
     "이벤트 종류2":function(){자바스크립트 코드;2,
     ...
     "이벤트 종류n":function(){자바스크립트 코드;n}
   });

 

  다음은 그룹 이벤트 등록에 대한 예제이다.

  사용자가 버튼에 마우스 포인터를 올리거나 키보드를 사용하여 버튼에 포커스를 맞추면 환영 메시지가

  콘솔 패널에 출력된다.

<button id="btn1">버튼</button>

  1. on()메소드 등록방식 1

$(".btn1").on("mouseover focus", function(){
  console.log("welcome");
})

  2. on()메소드 등록방식 2

$(".btn1").on({
  "mouseover focus":function(){
    console.log("welcome");
  }
});

  3. on()메소드 등록방식 3

$(".btn1").on({
  "mouseover":function(){
    console.log("welcome");
  },
  "focus":function(){
    console.log("welcome");
  }
});

 

  다음은 단독 이벤트 등록 메소드(click())와 그룹 이벤트 등록 메소드(on())로 이벤트를 등록하는 예제이다.

<script>
  $(function(){
    $(".btn1").click(function(){
     $(".btn1").parent().next()
     .css({"color":"#f00"});
     });
     //사용자가 [버튼1]을 클릭하면 <p>내용1</p>의 글자를
     //빨간색(#f00)으로 변경한다.

    $(".btn2").on({
      "mouseover focus":function(){
        $(".btn2").parent().next()
        .css({"color":"#0f0"});
        },
        //사용자가 [버튼2]에 마우스 포인터를 올리거나
        //포커스를 이동하면 <p>내용2</p>의 글자를 초록색(#0f0)으로
        //변경한다.
      "mouseout blur":function(){
        $(".btn2").parent().next()
        .css({"color":"#000"});
        },
        //사용자가 [버튼2]에서 다른 요소로 마우스 포인터를 옮기거나
        //포커스를 이동하면 <p>내용2</p>의 글자를 검은색(#000)으로
        //변경한다.
    });
  });
</script>
</head>
<body>
  <p>
    <button class="btn1">버튼1</button>
  </p>
  <p>내용1</p>
  <p>
    <button class="btn2">버튼2</button>
  </p>
  <p>내용2</p>
</body>

강제로 이벤트 발생시키기

  '이벤트가 강제로 발생했다'는 말은 '사용자에 의해' 이벤트가 발생했음을 의미하는것이 아니라 '핸들러에 의해'

  자동으로 이벤트가 발생했음을 의미한다.

  예를 들어 버튼을 클릭할 때마다 변수의 값이 1씩 증가하는 버튼이 있다고 하면, 변수의 값을 증가시키려면

  사용자가 직접 버튼을 클릭해야 한다.

  하지만 단독 이벤트 등록 메소드를 사용하거나 trigger()메소드를 사용하면 강제로 이벤트를 발생시킬 수 있다.

  즉, 사용자가 버튼을 클릭하지 않아도 변수가 증가한다.

 

  다음은 단독 이벤트 등록 메소드와 trigger() 메소드를 사용해 강제로 이벤트를 발생시키는 메소드의 기본형과

  예제이다.

1. $("이벤트 대상").단독 이벤트 등록 메소드();
2. $("이벤트 대상").trigger("이벤트 종류");
<script>
  $(function(){
    $(".btn1").click(fuction(){
      $(".btn1").parent().next()
      .css({"color":"#f00"});
    });
    //[버튼1]에 click 이벤트가 발생하며
    //이벤트 핸들러가 실행된다.

    $(".btn2").on({
      "mouseover focus":function(){
        $(".btn2").parent().next()
        .css({"color":"#0f0"});
      }
    });
    //[버튼2]에 마우스 포인터를 올리면
    //자동으로 실행되는 이벤트 핸들러

    $(".btn1").click();
    $(".btn2").trigger("mouseover");    
    //[버튼2]에 마우스 포인터를 올리면
    //이벤트핸들러(function(){자바스크립트코드})
    //가 자동으로 실행된다.
  });
</script>
</head>
<body>
  <p>
    <button class="btn1">버튼1</button>
  </p>
  <p>내용1</p>
  <p>
    <button class="btn2">버튼2</button>
  </p>
  <p>내용2</p>
</body>

이벤트 제거 메소드

  이벤트를 제거하는 메소드로 off()가 있다.

  다음은 메소드의 기본형이다

$("이벤트 대상").off("제거할 이벤트 종류");

  다음은 off()메소드를 이용한 예제이다.

<script>
  $(function(){
    $(".btn1").click(fuction(){
      $(".btn1").parent().next()
      .css({"color":"#f00"});
    });

    $(".btn2").on({
      "mouseover focus":function(){
        $(".btn2").parent().next()
        .css({"color":"#0f0"});
      }
    });
    
    $(".btn1").off("click");
    //[버튼1]에 등록된 클릭 이벤트를 제거
    $(".btn2").off("mouseover focus");    
    //[버튼2]에 등록된 마우스오버, 포커스 이벤트를 제거
  });
</script>
</head>
<body>
  <p>
    <button class="btn1">버튼1</button>
  </p>
  <p>내용1</p>
  <p>
    <button class="btn2">버튼2</button>
  </p>
  <p>내용2</p>
</body>

로딩 이벤트 메소드

  사용자가 브라우저에서 HTML문서를 요청하여 HTML 문서의 로딩이 완료되면 이벤트 핸들러를 실행한다.

  로딩 이벤트 메소드에는 ready()와 load()가 있다.

  

  ready()메소드는 사용자가 사이트를 방문할 때 요청한 HTML 문서 객체(document)의 로딩이 끝나면 이벤트를

  발생시킨다. load()메소드는 외부에 연동된 소스(iframe, img, video)의 로딩이 끝나면 이벤트를 발생시킨다.

  다음은 ready()와 load() 메소드의 기본형이다.

1. $(document).ready(function(){자바스크립트코드});
2. ${document).on("ready", function(){자바스크립트코드});
3. $(window).load(function() {자바스크립트코드;});
4. $(window).on("load", function(){자바스크립트코드;});

  다음은 ready(), load() 이벤트 메소드를 사용한 예제이다.

  외부에서 불러온 이미지의 로딩이 끝나면 이미지의 높이값을 콘솔 패널에 출력한다.

 

<script>
  $(function(){
    $(document).ready(function(){
      var h1=$(".img1").height();
      console.log("ready:", h1); //ready : 0
    });
    //HTML에 전체 요소가 로딩되면 이벤트 핸들러가 실행

    $(window).load(function(){
      var h2=$(".img1").height();
      console.log("load:", h2); //load : 300
    });
    //외부 소스(이미지)가 완전히 로딩되면 이벤트 핸들러가 실행되며
    //이미지 높이값(300)이 출력된다.
  });
</script>
</head>
<body>
  <p>
    <img src="http://place-hold.it/300X300" class="img1">
  </p>
</body>

 

마우스 이벤트

  사용자가 사이트에서 마우스를 이용해서 취하는 모든 행위를 말한다.

  가령 사용자가 지정한 요소에 마우스 포인터를 올리거나 클릭하는 등의 행위를 말한다.

 

click()/dblclick() 이벤트 메소드

  click()메소드는 서낵한 요소를 클릭했을 때 이벤트를 발생시키거나 선택한 요소에 강제로 클릭 이벤트를 발생시킬때

  사용한다. click()이벤트 메소드를 등록하는 기본형은 다음과 같다.

1. click이벤트 등록
   $("이벤트 대상 선택").click(function(){자바스크립트코드});
   $("이벤트 대상 선택").on("click", function(){자바스크립트코드});

2. click 이벤트 강제 발생
   $("이벤트 대상 선택").click();

 

  dblclick() 이벤트 메소드는 선택한 요소를 연속해서 두번 클릭했을 때 이벤트를 발생시키거나 선택한 요소에

  강제로 더블클릭 이벤트를 발생시킨다.

  기본형은 다음과 같다.

1. dblclick 이벤트 등록
   $("이벤트 대상 선택").dblclick(function(){자바스크립트코드;});
   $("이벤트 대상 선택").on("dblclick", function(){자바스크립트 코드;});
   
2. dblclick 이벤트 강제 발생
   $("이벤트 대상 선택").dblclick();

 

<a>, <form>태그에 클릭 이벤트 적용시 기본 이벤트 차단하기

  <a>요소에 click이나 dblclick을 등록하면 클릭할 때마다 <a>에 링크된 주소로 이동하는 문제가 발생한다.

  이 문제를 해결하려면 <a> 요소의 기본 이벤트를 차단해야 한다. <form>요소의 제출버튼(submit)도

  action에 등록된 주소로 이동시키는 문제가 발생한다.

  우리가 등록한 이벤트를 정상적으로 수행하려면 이러한 기본 이벤트를 차단해야 한다.

 

  다음은 <a>, <form> 태그에 이벤트를 등록하기 위해 기본 이벤트를 차단하는 기본형이다.

1. return false를 이용한 차단 방식
   $("a 또는 form").이벤트 메소드(function(){
     자바스크립트코드;
     return false;
   });

2. preventDefault()메소드를 이용한 차단 방식
   $("a 또는 form").이벤트 메소드(function(){
     e.preventDefault(); //prevent는 막다, default는 기본이벤트를 의미한다.
     자바스크립트코드;
   });

 

  다음은 <a>와 <button>에 각각 click, dblclick 이벤트를 등록하는 예제이다.

<script>
  $(function(){
    $(".btn1").on("click", function(e){
      e.preventDefault();
      //<a>요소에 링크된 페이지로 이동하는 기본 이벤트를 차단
      $(".txt1").css({"background-color":"#ff0"});
    });
    $(".btn2").on("click",function(e){
      $(".txt2").css({"background-color":"#0ff"});
    });
    $(".btn3").on("dblclick", function(){
      $(".txt3").css({"background-color":"#0f0"});
    });
  });
</script>
</head>
<body>
  <p>
    <a href="http://www.easypub.co.kr/" class="btn1">버튼1</a> 
  </p>
  <p class="txt1">내용1</p>
  <p><a href="http://www.easypub.co.kr/" class="btn2">버튼2</a></p>
  <p class="txt2">내용2</p>
  <p><button class="btn3">버튼3</button></p>
  <p class="txt3">내용3</p>
</body>

 

mouseover() / mouseout() / hover() 이벤트 메소드

  mouseover()이벤트 메소드는 선택한 요소에 마우스 포인터를 올릴 때마다 이벤트를 발생시키거나 선택한 요소에

  mouseover 이벤트를 강제로 발생시킨다.

  mouseout() 이벤트 메소드는 선택한 요소에서 마우스 포인터가 벗어날 때마다 이벤트를 발생시키거나 선택한 요소에

  mouseout이벤트를 강제로 발생시킨다.

  그리고 hover() 이벤트 메소드는 선택한 요소에 마우스 포인터가 올라갈 때와 선택한 요소에서 벗어날 때 각각

  이벤트를 발생시키며, 이때 각각 다른 이벤트 핸들러를 실행 시킨다.

 

  각 이벤트 메소드의 기본형은 다음과 같다.

1. mouseover 이벤트 등록
   $("이벤트 대상 선택").mouseover(function(){자바스크립트코드});
   $("이벤트 대상 선택").on("mouseover", function(){자바스크립트코드;});

2. mouseover 이벤트 강제 발생
   $("이벤트 대상 선택").mouseover();
1. mouseout 이벤트 등록
   $("이벤트 대상 선택").mouseout(function(){자바스크립트코드});
   $("이벤트 대상 선택").on("mouseout", function(){자바스크립트코드;});
   
2. mouseout 이벤트 강제 발생
   $("이벤트 대상 선택").mouseout();
hover 이벤트 등록
  $("이벤트 대상 선택").hover(
    function(){마우스 오버 시 실행될 코드},
    function(){마우스 아웃 시 실행될 코드}
  );

  다음은 버튼 요소에 mouseover, mouseout, hover 이벤트 메소드를 적용한 예제이다.

<script>
  $(function(){
    $(".btn1").on({
      "mouseover":function(){
        $(".txt1").css({"background-color":"yellow"});
      },
      //[Mouse Over/Mouse Out] 버튼에 마우스 포인터를 올리면
      //class값이 "txt1"인 요소의 배경색을 노란색으로 변경한다.

      "mouseout":function(){
        $(".txt1".css({"background-color":"none"});
      }
      //버튼에서 마우스 포인터가 벗어나면 배경의 색을 다시 제거
    });

    $(".btn2").hover(function(){
      $(".txt2").css({"background-color":"aqua"});
    }, function(){
      $(".txt2").css({"background-color":"none"});
    });
  });
</script>
</head>
<body>
  <p>
    <button class="btn1">Mouse Over/Mouse Out</button>
  </p>
  <p class="txt1">내용1</p>
  <p>
    <button class="btn2">Hover</button>
  </p>
  <p class="txt2">내용2</p>
</body>

mouseenter() / mouseleave() 이벤트 메소드

  mouseenter() 메소드는 대상 요소의 경계 범위에 마우스 포인터가 들어오면 이벤트를 발생 시키고,

  mouseleave() 이벤트 메소드는 대상 요소의 경계 범위에서 마우스 포인터가 완전히 벗어나면 이벤트를 발생시킨다.

  

  mouseover와 mouseenter의 차이점을 보면,

  mouseover는 대상 요소에 마우스 포인터가 올라가면 발생하는 이벤트이고, mouseenter는 이벤트 대상이 포함된

  범위에 마우스 포인터가 들어오면 발생하는 이벤트이다.

  mouseover는 한 대상. mouseenter는 구역 혹은 영역이라고 생각하면 된다.

 

  mouseout과 mouseleave도 역시 대상요소인지 범위인지에 따라 다른것이다.

 

  다음은 mouseenter()와 mouseleave() 메소드의 기본형이다.

1. mouseenter 이벤트 등록
   $("이벤트 대상 선택").mouseenter(function(){자바스크립트코드;});
   $("이벤트 대상 선택").on("mouseenter", function(){자바스크립트코드;});
   
2. mouseenter 이벤트 강제 발생
   $("이벤트 대상 선택").mouseenter();
1. mouseleave 이벤트 등록
   $("이벤트 대상 선택").mouseleave(function(){자바스크립트코드;});
   $("이벤트 대상 선택").on("mouseleave", function(){자바스크립트코드;});

2. mouseleave 이벤트 강제 발생
   $("이벤트 대상 선택").mouseleave();

  다음은 mouseenter와 mouseleave 메소드를 사용한 예제이다.

<script>
  $(function(){
    $("#box_1").on("mouseout", function(){
      $("#box_1").css({"background-color":"yellow"});
    });

    $("#box_2").on("mouseleave":function(){
      $("#box_2").css({"background-color":"pink"});
    });
  });
</script>
</head>
<body>
  <h1>mouseout</h1>
  <div id="box_1">
    <p><a href="#">내용1</a></p>
    <p><a href="#">내용2</a></p>
    <p><a href="#">내용3</a></p>
  </div>

  <h1>mouseleave</h1>
  <div id="box_2">
    <p><a href="#">내용4</a></p>
    <p><a href="#">내용5</a></p>
    <p><a href="#">내용6</a></p>
  </div>
</body>

mousemove() 이벤트 메소드

  다음은 mousemove()메소드의 기본형이다.

1. mousemove 이벤트 등록
   $("이벤트 대상 선택").mousemove(function(){자바스크립트코드;});
   $("이벤트 대상 선택").on("mousemove", function(){자바스크립트코드;});
   
2. mousemove 이벤트 강제 발생
   $("이벤트 대상 선택").mousemove();

  다음은 mousemove 이벤트가 발생할 때마다 마우스 포인터의 좌표값을 각각 <span>에 출력하는 예제이다.

<script>
  $(function(){
    $(document).on("mousemove", function(e){
      $(".posX").text(e.pageX);
      $(".posY").text(e.pageY);
    });
  });
</script>
</head>
<body>
  <h1>mousemove</h1>
  <p>X : <span class="posX">0</span>px</p>
  <p>Y : <span class="posY">0</span>px</p>
</body>

 

(참고 : do it 자바스크립트+제이쿼리 입문)

'Front > JQuery' 카테고리의 다른 글

JQuery(그룹이벤트)  (0) 2020.05.22
JQuery(이벤트 객체)  (0) 2020.05.22
JQuery(객체조작)  (0) 2020.05.20
JQuery(속성 탐색 선택자)  (0) 2020.05.20
JQuery(위치탐색선택자)  (0) 2020.05.20

객체조작메소드

  속성 조작 메소드와 수치 조작 메소드 그리고 객체편집메소드로 나눌 수 있다.

  

  속성 조작 메소드는 요소의 속성을 바꿀 때 사용하고, 수치 조작 메소드는 요소의 너비값 또는 높이값 같은

  수치를 바꿀 때 사용한다.

  이 두 메소드는 선택한 요소의 속성을 바꾸는 메소드이므로 성격이 비슷하다고 볼 수 있다.

  

  객체편집 메소드는 말 그대로 객체를 생성하거나 삭제 또는 복제 할 때 사용한다.

 

  예를 들어 제이쿼리에 객체를 조작하거나 생성하는 메소드는 다음과 같은 기능을 가진 메소드를 말한다.

 

  1. 선택한 요소에 새 요소를 만든다. -새 요소 생성

<div></div>                 ->                   <div><p>내용</p></div>

  2. 요소를 복제하여 선택한 요소에 삽입한다. - 복제

<p>내용1</p>              ->                    <p>내용1</p> 
                                                         <p>내용1</p>

  3. 선택한 요소를 삭제한다. -삭제

<div><p>내용</p></div>              ->            <div></div>

  4. 선택한 요소의 속성을 변경 또는 추가한다. 그리고 기존의 속성을 삭제도 한다 - 속성 변환

<img src="bnt_on.gif" alt="버튼1"/>      ->     <img src="bnt_out.gif" alt="버튼1"/>

 

속성 조작 메소드

  요소의 속성을 조작할 때 사용하는 메소드이다. 다음은 속성 조작 메소드의 종류와 사용법을 정리한 표이다.

종류 사용법 설명
html()
html(“새 요소”)
$(“요소 선택”).html();
$(“요소 선택”).html(“새 요소”);
선택한 요소의 하위 요소를 가져온다.
선택한 요소의 하위 요소를 모두 제거하고, 그 위치에 지정한 새 요소를 생성한다.
text()
text(“새 텍스트”)
$(“요소 선택”).text();
$(“요소 선택”).text(“새 텍스트”);
선택한 요소가 감싸는 모든 텍스트를 가져온다.
선택한 요소의 하위 요소를 모두 제거하고, 그 위치에 지정한 새 텍스트를 생성한다.
attr(“속성명”)
attr(“속성명”,”새값”)
$(“요소 선택”).attr(“속성명”);
$(“요소 선택”).attr(“속성명”,”새값”);
선택한 요소의 지정한 속성(attribute)값을 가져온다.
요소를 선택하여 지정한 속성에 새 값을 적용한다.
removeAttr(“속성명”) $(“요소 선택”).removeAttr(“속성명”); 선택한 요소의 지정한 속성만 제거한다.
prop(“상태 속성명”)
prop(“상태 속성명”, 새 값)
$(“요소 선택”).prop(“상태 속성명”);
$(“요소 선택”).prop(“상태 속성명”,”새 값”);
선택한 요소의 상태 속성값을 가져온다.
요소를 선택하여 상태 속성에 새 값을 적용한다.
val()
var(“새 값”)
$(“요소 선택”).val();
$(“요소 선택”).val(“새 값”);
선택한 폼 요소의 value값을 가져온다.
폼 요소를 선택하여 value 속성에 새 값을 적용한다.
css(“속성명”)
css(“속성명”,”새값”)
$(“요소 선택”).css(“속성명”);
$(“요소 선택”).css(“속성명”,”새 값”);
선택한 요소의 지정한 스타일(CSS)속성 값을 가져온다.
요소를 선택하여 지정한 스타일 속성에 새 값을 적용한다.
addClass(“class ”) $(“요소 선택”).addClass(“class ”); 선택한 요소의 class속성에 새 값을 추가한다.
removeClass(“class ”) $(“요소 선택”).removeClass(“class ”); 선택한 요소의 class 속성에서 지정한 값만 제거한다.
toggleClass(“class ”) $(“요소 선택”).toggleClass(“class ”) 선택한 요소의 class값에 지정한 값이 포함되어 있으면 제거하고 속성값이 없으면 추가한다.
hasClass(“class ”) $(“요소 선택”).hasClass(“class ”) 선택한 요소의 class값에 지정한 클래스 값이 포함되어 있으면 true, 없으면 false를 반환한다.

 

html()/text() 메소드

  html()메소드는 선택한 요소의 하위 요소를 가져와 문자열로 반환하거나 하위 요소를 전부 제거하고 새 요소로 바꿀 때

  사용한다.

  text()메소드는 선택한 요소에 포함되어있는 전체 텍스트를 가져오거나 선택한 하위 요소를 전부 제거하고 새 텍스트를

  생성할 때 사용한다.

1. $("요소 선택").html();
2. $("요소 선택").html("새 요소");
3. $("요소 선택").text();
4. $("요소 선택").text("새 텍스트");

  1은 선택한 요소의 하위 요소를 가져와 문자열로 반환한다.

  2는 선택한 요소의 하위 요소를 전부 제거하고 지정한 새 요소를 생성한다.

  3은 선택한 요소의 텍스트만 가져온다.

  4는 선택한 요소의 하위 요소를 전부 제거하고 지정한 텍스트를 생성한다.

<script>
  $(function(){
    var result_1 = $("#sec_1").html();
      console.log(result_1);
      //id 값이 "sec_1"인 하위 요소를 문자열로 가져와
      //result_1에 저장한다.
      $("#sec_1 p").html("<a href=\"#\">Text1</a>");
       //id값이 "sec_1"인 요소의 하위 요소 중
       //<p>요소의 하위 요소를 새 요소로 바꾼다.

    var result_2 = $("#sec_2").text();
      console.log(result_2);
      //id값이 "sec_2"인 요소의 텍스트를 result_2에 저장
      $("#sec_2 h2").text("text()");
       //id값이 "sec_2"인 요소의 하위 요소 중 <h2> 요소의 하위 요소를
       //모두 제거. 그 다음 새로운 텍스트를 생성.
  });
</script>
  </head>
  <body>
    <h1>
      <strong>객체 조작 및 생성</strong>
    </h1>
    <section id="sec_1">
      <h2>
        <em>html()</em>
      </h2>
      <p>내용1</p>
    </section>
    <section id="sec_2">
      <h2>
        <em>텍스트()</em>
      </h2>
      <p>내용2</p>
    </section>
  </body>

 

attr()/removeAttr()메소드

  attr()메소드는 선택한 요소에 새 속성을 생성하거나 기존의 속성을 변경할 때 또는 요소의 속성값을 불러올 때

  사용한다.

  removeAttr()메소드는 선택한 요소에서 기존의 속성을 삭제할 때 사용한다.

 

  attr()메소드의 기본형은 다음과 같다.

1. $("요소 선택").attr("속성명");
2. $("요소 선택").attr("속성명","새 값");
3. $("요소 선택").attr({"속성명1":"새 값1","속성명2":"새 값2"..."속성명n":"새 값n"});

  1은 선택한 요소의 지정한 속성값을 가져온다.

  2는 요소를 선택하여 지정한 속성값을 적용한다.

  3은 요소를 선택하여 지정한 여러개의 속성값을 적용한다.

 

  removeAttr()메소드의 기본형은 다음과 같다.

$("요소 선택").removeAttr("속성");

  선택한 요소에서 지정한 속성을 삭제한다.

 

  다음 예제는 attr()메소드와 removeattr()메소드가 어떻게 작용하는지에 대한 예제이다.

<script>
  $(function(){
    var srcVal=$("#sec_1 img").attr("src");
    console.log(srcVal);
    //id값이 "sec_1"인 요소의 하위 <img>요소를 선택하여
    //"src" 값을 srcVal에 저장한다.

    $("#sec_1 img")
    .attr({
      "width":200,
      "src":srcVal.replace("1.jpg","2.jpg"),
      "alt":"바위"
    })
    .removeAttr("border");
  });
</script>
  </head>
  <body>
    <h1>
      <strong>객체 조작 및 생성</strong>
    </h1>
    <section id="sec_1">
      <h2>이미지 속성</h2>
      <p>
        <img src="images/math_img_1.jpg" alt="가위" border="2">
      </p>
    </section>
  </body>

 

addClass()/removeClass()/toggleClass()/hasClass()메소드

  addClass()메소드는 선택한 요소에 클래스를 생성하고, removeClass()메소드는 선택한 요소에서 지정한 클래스를

  삭제한다. toggleClass()메소드는 선택한 요소에 지정한 클래스가 없으면 생성하고, 있을 경우에는 삭제한다.

  hasClass()메소드는 선택한 요소에 지정한 클래스가 있으면 true를 반환하고, 없으면 false를 반환한다.

  

  각각의 기본형은 다음과 같다.

1. $("요소 선택").addClass("class 값");
2. $("요소 선택").removeClass("class 값");
3. $("요소 선택").toggleClass("class 값");
4. $("요소 선택").hasClass("class 값");

  1은 요소를 선택하여 지정한 class값을 생성한다.

  2는 요소를 선택하여 지정한 class값을 삭제한다.

  3은 요소를 선택하여 지정한 class값이 있으면 삭제하고 없으면 생성한다.

  4는 선택한 요소에 지정한 class값이 있으면 true, 없으면 false를 반환한다.

 

<script>
  $(function(){
    $("#p1").addClass("aqua");
    $("#p2").removeClass("red");
    $("#p3").toggleClass("green");
    $("#p4").toggleClass("green");
    $("#p6").text($("#p5").hasClass("yellow"));
  });
</script>
<style>
  .aqua{background_color:#0ff;}
  .red{background_color:#f00;}
  .green{background_color:#0f0;}
  .yellow{background_color:##f0;}
</style>
  </head>
  <body>
   <p id="p1">내용1</p>
   <p id="p2" class="red">내용2</p>
   <p id="p3">내용3</p>
   <p id="p4" class = "green">내용4</p>
   <p id="p5" class = "yellow">내용5</p>
   <p id="p6"> </p>
  </body>

val()메소드

  선택한 폼 요소의 value속성값을 가져오거나 새 값을 적용할 때 사용한다.

  기본형은 다음과 같다.

1. $("요소 선택").val();
2. $("요소 선택").val("새 값");

  1은 선택한 폼 요소의  value 속성값을 가져온다.

  2는 요소를 선택하여 value 속성에 새 값을 적용한다.

 

  다음은 value() 메소드 작동 예제이다.

<script>
  $(function(){
    var result_1=$("#user_name").val();
    console.log(result_1); //용대리

    $("#user_id").val("javascript");

    var result_2=$("#user_id").prop("defaultValue");
    console.log(result_2); //hello
  });
</script>
  </head>
  <body>
  <h1>객체 조작 및 생성</h1>
  <form action="#" id="form_1">
    <p>
      <label for="user_name">이름</label>
      <input type="text" name="user_name" id="user_name" value="용대리">
    </p>
    <p>
      <label for="user_id">아이디</label>
      <input type="text" name="user_id" id="user_id" value="hello">
    </p>
  </form>
  </body>

prop()메소드

  선택한 폼 요소(선택상자, 체크박스, 라디오 버튼)의 상태 속성값을 가져오거나 새롭게 설정할 때 사용한다.

  그리고 선택한 요소의 태그명, 노드타입, 선택상자의 선택된 옵션의 인덱스 값도 알 수 있다.

1. $("요소 선택").prop("[checked | selected]");
2. $("요소 선택").prop("[checked | selected]", [true | false]);
3. $("요소 선택").prop("[tagName | nodeType | selectedIndex | defaultValue]");

  1번은 선택한 폼 요소(체크밗, 라디오버튼, 선택상자)가 체크(checked)된 상태인지, 선택(selected) 상태인지 알 수 있다.

  예를 들어 선택한 요소가 체크박스이고 체크된 상태에서 prop("checked")를 적용하였다면 true를 아니면 false를 

  반환한다.

  2번은 폼 요소를 선택하여 체크 또는 선택 상태를 바꿀 수 있다.

  3번은 선택한 요소의 태그명이나 노드타입, 선택된 옵션의 인덱스 값을 구한다.

  이때 폼 요소에 prop("defaultValue")를 사용하면 사용자가 value 속성값을 바꿔도 초기의 value 속성값을 가져온다.

<script>
  $(function(){
    var result_1=$("#chk1").prop("checked");
    console.log(result_1); //false
    //id값이 "chk1"인 요소가 체크된 상태이면 true를 반환하여
    //result_1에 저장한다.(반대의 경우에는 false)

    var result_2=$("#chk2").prop("checked");
    console.log(result_2)  //true

    var result_2=$("#chk3").prop("checked", true);
    //id 값이 "chk3"인 요소의 체크상태를 true로 바꾼다.

    var result_3=$("#se_1").prop("selectedIndex");
    console.log(result_3); //2
    //id값이 "se_1"인 요소의 옵션 중 selected 옵션의 인덱스 값을 가져온다.
  });
</script>
  </head>
  <body>
    <h1>
      <strong>객체 조작 및 생성</strong>
    </h1>
    <form action="#" id="form_1">
      <p>
        <input type="checkbox" name="chk1" id="chk1">
        <label for="chk1">chk1</label>
        <input type="checkbox" name="chk2" id="chk2" checked>
        <label for"chk2">chk2</label>
        <input type="checkbox" name="chk3" id="chk3">
        <label for="chk3">chk2</label>
      </p>
      <p>
        <select name="se_1" id="se_1">
          <option value="opt1">option1</option>
          <option value="opt2">option2</option>
          <option value="opt3" selected>option3</option>
        </select>
      </p>
    </form>
  </body>

  실행하면 체크박스가 체크되고 선택 상자의 옵션 요소 중 선택된 옵션의 인덱스값(2)이 출력된다.

  그리고 "chk3"의 체크박스가 체크된 상태로 바뀐다.

 

수치 조작 메소드

  수치 조작 메소드는 요소의 속성을 조작할 때 사용하는 메소드이다.

  다음은 수치 조작 메소드의 종류와 사용법을 정리한 표이다.

종류 사용법 설명
height() $(“요소 선택”).height();
$(“요소 선택”).height(100);
안쪽 여백과 선을 제외한 높이값을 반환하거나 변환한다.
width() $(“요소 선택”).width();
$(“요소 선택”).width(100);
안쪽 여백과 선을 제외한 너비값을 반환하거나 변환한다.
inneHeight() $(“요소 선택”).inneHeight();
$(“요소 선택”).innerHeight(300);
안쪽 여백을 포함한 높이값을 반환하거나 변환한다.
innerWidth() $(“요소 선택”).innerWidth();
$(“요소 선택”).innerWidth(100);
안쪽 여백을 포함한 너비값을 반환하거나 변환한다.
outerHeight() $(“요소 선택”).outerHeight();
$(“요소 선택”).outerHeight(100);
선과 안쪽 여백을 포함한 높이값을 반환하거나 변환한다.
outerWidth() $(“요소 선택”).outerWidth();
$(“요소 선택”).outerWidth(100);
선과 안쪽 여백을 포함한 너비값을 반환하거나 변환한다.
position() $(“요소 선택”).position().left;
$(“요소 선택’).position().top;
선택한 요소의 포지션 위치값을 반환한다.
offset() $(“요소 선택”).offset().left;
$(“요소 선택”).offset().top;
선택한 요소가 문서에서 수평/수직으로 얼마나 떨어져 있는지에 대한 값을 반환한다.
scrollLeft() $(window).scrollLeft(); 브라우저의 수평 스크롤 이동 높이값을 반환한다
scrollTop() $(window).scrollTop(); 브라우저의 수직 스크롤 이동 너비값을 반환한다

 

요소의 높이/너비 메소드

  height()와 width() 메소드는 여백 및 선 두께를 제외한 순수 요소의 높이값과 너비값을 계산한다.

  innerHeight()와 innerWidth()메소드는 여백을 포함한 요소의 높이값과 너비값을 계산하고,

  outerHeight()와 outerWidth() 메소드는 여백 및 선을 포함한 요소의 높이값과 너비값을 계산한다.

 

  다음은 선택한 요소에 각 메소드를 적용하여 너비값 또는 높이값을 불러왔을때 계산되는 범위를 그림으로 나타낸

  것이다.

  이 메소드들의 기본형은 다음과 같다.

1. $(요소 선택).height(); / $(요소 선택).width();
   $(요소 선택).height(값); / $(요소 선택).width(값);
   
2. $(요소 선택).innerHeight(); / $(요소 선택).innerWidth();
   $(요소 선택).innerHeight(값); / $(요소 선택).innerWidth(값);
   
3. $(요소 선택).outerHeight(); / $(요소 선택).outerWidth();
   $(요소 선택).outerHeight(값); / $(요소 선택).outerWidth(값);

  1은 요소의 높이값과 너비값을 반환 또는 변경한다.

  2는 여백을 포함한 요소의 높이값과 너비값을 반환 또는 변경한다.

  3은 여백 및 선 두께를 포함한 요소의 높이값과 너비값을 반환 또는 변경한다.

 

  다음 예제는 요소의 높이/ 너비 메소드들이 어떻게 사용되는지 보여준다.

<script>
  $(function(){
    var w1 = $("#p1").width();
    console.log(w1);

    var w2=$("#p1").innerWidth();
    console.log(w2);

    var w3=$("#p1").outerWidth();
    console.log(w3);

    $("#p2")
    .outerWidth(100)
    .outerHeight(100);
  });
</script>
<style>
  *{
    padding : 0;
  }

  #p1, #p2{
    width: 100px;
    height: 50px;
    padding: 20px;
    border: 5px solid #000;
    background-color: #ff0;
  }
  </style>
  </head>
  <body>
    <h1>수치 조작 메소드</h1>
    <p id="p1">내용1</p>
    <p id="p2">내용2</p>
  </body>

 

요소 위치 메소드

  요소 위치 메소드에는 position() 메소드와 offset()메소드가 있다.

  position()메소드는 포지션 기준이 되는 요소를 기준으로 선택한 요소에서 가로/세로로 떨어진 위치의 좌표값을

  반환하거나 변경할 때 사용한다. offset()메소드는 문서(document)를 기준으로 선택한 요소의 가로/세로로 떨어진

  위치의 좌표값을 반환하거나 변경할 때 사용한다.

  각 메소드의 기본형은 다음과 같다.

1. $(요소 선택).position().[left | right | top | bottom]
2. $(요소 선택).offset().[left | top]

  1은 포지션 기준이 되는 요소를 기준으로 선택한 요소의 위치 좌표값을 반환한다.

  2는 문서를 기준으로 선택한 요소의 위치 좌표값을 반환한다.

 

  다음은 선택한 요소에 위치 메소드를 적용하여 위치값을 구한 position()과 offset() 메소드의 차이를 그림으로 나타낸

  것이다.

  다음은 요소위치 메소드 사용 예제이다.

  <div id="box_wrap">의 position 속성에는 "relative"값을 적용하고 <p class="box">의 position속성에는

  "absolute"값을 적용했다.

<script>
  $(function(){
    var $txt1=$(".txt_1 span"),
        $txt2=$(".txt_2 span"),
        $box=$(".box");

    var off_t=$box.offset().top;  //100
    var pos_t=$box.poisition().top; //50

    $txt1.text(off_t);
    $txt2.text(pos_t);
  });
</script>
<style>
  *{margib:0;padding:0;}
  #box_wrap{
    width:300px;
    height:200px;
    margin:50px auto 0;
    position:relative;
    background-color:#ccc;
  }
  .box{
    width:50px;height:50px;
    position:absolute;
    left:100px;top:50px;
    background-color:#f00;
  }
  </style>
  </head>
  <body>
    <div id="box_wrap">
      <p class="box">박스</p>
    </div>
    <p class="txt_1">절대 top위치값:<span></span></p>
    <p class="txt_2">상대 top위치값:<span></span></p>
  </body>

스크롤바 위치 메소드

  scrollTop()메소드는 브라우저의 스크롤바가 수직/수평으로 이동한 위치값을 불러오거나 변경할 때 사용한다.

  다음은 scrollTop()메소드의 기본형이다.

1. $(요소 선택).scrollTop(); $(요소 선택).scrollLeft();
2. $(요소 선택).scrollTop(새 값); $(요소 선택).scrollLeft(새 값);

  1은 스크롤바가 수직 또는 수평으로 이동한 위치값을 반환한다.

  2는 입력한 수치만큼 수직 또는 수평으로 스크롤바를 이동시킨다.

 

  다음은 속성과 값에 따른 스크롤바 위치 메소드를 사용한 예제이다.

<script>
  $(function(){
    var topNum=$("h1").offset().top;
    $(window).scrollTop(topNum);

    var sct=$(window).scrollTop();
    console.log(sct);
  });
</script>
<style>
  *{margin:0;padding:0;}
  body{line-height:1;}
  #wrap{
    height:5000px;
    padding-top:2000px;
  }
  </style>
  </head>
  <body>
    <div id="wrap">
      <h1>위치 메소드</h1>
    </div>
  </body>

 

객체 편집 메소드

  선택한 요소를 복제하거나 새 요소를 생성하는 메소드와 복제하거나 새로 생성한 요소를 의도한 위치에 삽입하고

  선택한 요소를 삭제하는 기능을 살펴보자.

 

  다음은 객체편집 메소드의 종류와 사용법을 간략하게 정리한 표이다.

종류 사용법 설명
before() $(“요소 선택”).before(“새 요소”); 선택한 요소의 이전 위치에 새 요소를 추가한다.
after() $(“요소 선택”).after(“새 요소”); 선택한 요소의 다음 위치에 새 요소를 추가한다.
append() $(“요소 선택”).append(“새 요소”); 선택한 요소의 마지막 위치에 새 요소를 추가한다.
appendTo() $(“새 요소”).appendTo(“요소 선택”); 선택한 요소의 마지막 위치에 새 요소를 추가한다.
prepend() $(“요소 선택”).prepend(“새 요소”); 선택한 요소의 맨 앞 위치에 새 요소를 추가한다.
prependTo() $(“새 요소”).prependTo(“요소 선택”); 선택한 요소의 맨 앞 위치에 새 요소를 추가한다
insertBefore() $(“새 요소”).insertBefore(“요소 선택”); 선택한 요소의 이전 위치에 새 요소를 추가한다.
insertAfter() $(“새 요소”).insertAfter(“요소 선택”); 선택한 요소의 다음 위치에 새 요소를 추가한다.
clone() $(“요소 선택”).clone(true or false); 선택한 문서 객체를 복제한다. 이때 인자값이 true일 경우 하위 요소까지 모두 복제하고, false일 경우에는 선택한 요소만 복제한다.
empty() $(“요소 선택”).empty(); 선택한 요소의 하위 내용들을 모두 삭제한다.
remove() $(“요소 선택”).remove(); 선택한 요소를 삭제한다
replaceAll()/
replaceWith()
$(“새 요소”).replace(“요소 선택”);
$(“요소 선택”).replaceWith(“새 요소”);
선택한 요소들을 새 요소로 교체한다.
unwrap() $(“요소 선택”).unwrap(); 선택한 요소의 부모 요소를 삭제한다.
wrap() $(“요소 선택”).wrap(새 요소); 선택한 요소를 새 요소로 각각 감싼다.
wrapAll() $(“요소 선택”).wrapAll(); 선택한 요소를 새 요소로 한꺼번에 감싼다
wrapInner() $(“요소 선택”).wrapInner(새 요소); 선택한 요소의 내용을 새 요소로 각각 감싼다.

 

before()/insertBefore()/after()/insertAfter()메소드

  before()와 insertBefore()메소드는 선택한 요소의 이전 위치에 새 요소를 생성하고, after()와 insertAfter()메소드는

  선택한 요소의 다음 위치에 새 요소를 선택한다.

  각 메소드의 기본형은 다음과 같다.

1. $("요소 선택").before("새 요소");
2. $("새 요소").insertBefore("요소 선택");
3. $("요소 선택").after("새 요소");
4. $("새 요소").insertAfter("요소 선택");

  1과 3, 2와 4는 서로 사용법만 다르고 기능은 같다.

 

  다음은 before(), insertBefore(), after(), insertAfter() 메소드를 사용한 예제이다.

<script>
  $(function(){
    $("#wrap p:eq(2)").after("<p>After</p>");
    $("<p>insertAfter</p>").insertAfter("#wrap p:eq(1)");

    $("#wrap p:eq(1)").before("<p>Before</p>");
    $("<p>insertBefore</p>").insertBefore("#wrap p:eq");
  });
</script>
  </head>
  <body>
    <div id="wrap">
      <p>내용1</p>
      <p>내용2</p>
      <p>내용3</p>
    </div>
  </body>

append()/appendTo()/prepend()/prependTo()메소드

  append()메소드와 appendTo()메소드는 선택한 요소 내의 마지막 위치에 새 요소를 생성하고 추가한다.

  prepend() 메소드와 prependTo()메소드는 선택한 요소 내의 앞 위치에 새 요소를 생성하고 추가한다.

  

  각 메소드의 기본형은 다음과 같다.

1. $(요소 선택).appenc(새 요소);
   $(새 요소).appendTo(요소 선택);

2. $(요소 선택).prepend(새 요소);
   $(새 요소).prependTo(요소 선택);

  1은 선택한 요소 내의 마지막 위치에 새 요소를 생성하고 추가한다.

  2는 선택한 요소 내의 앞 위치에 새 요소를 생성하고 추가한다.

 

  다음은 appendTo()메소드와 prepend()메소드를 어떻게 사용하는지 보여주는 예제이다.

<script>
  $(function(){
    $("<li>appendTo</li>").appendTo("#listZone");
    //선택한 요소의 맨 뒤에 새 요소를 생성
    $("#listZone").prepend("<li>prepend</li>");
    //선택한 요소의 맨 앞에 새 요소를 생성
  });
</script>
  </head>
  <body>
    <ul id="listZone">
      <li>리스트</li>
    </ul>
  </body>

clone()/empty()/remove() 메소드

  clone()메소드는 선택한 요소를 복제한다.

  empty()메소드는 선택한 요소의 모든 하위 요소를 삭제하고, remove()메소드는 선택한 요소를 삭제한다.

  각 메소드의 기본형은 다음과 같다.

1. $("요소 선택").clone([true | false]);
2. $("요소 선택").empty();
3. $("요소 선택").remove();

  1은 선택한 요소를 복제한다. true면 이벤트까지 복제하고, false면 요소만 복제한다. 기본값은 false이다.

  2는 선택한 요소의 모든 하위 요소를 삭제한다.

  3은 선택한 요소를 삭제하낟.

 

  다음은 clone(), empty() 함수, remove()메소드를 이용한 예제이다.

<script>
  $(function(){
    var copyObj=$(".box1").children().clone();
    //class 값이 "box1"인 요소의 모든 자식 요소를 복제.
    //그 다음 copyObj에 참조시킨다.

    $(".box3").empty();
    //class값이 "box3"인 요소의 모든 하위 요소를 삭제.
    $(".box3").append(copyObj);
    //copyObj에 저장된 요소를 class값이 "box3"인 요소
    //맨 뒤에 추가.
  });
</script>
</head>
<body>
  <div class="box1">
    <p>내용1</p>
    <p>내용2</p>
  </div>
  <div class="box2">
    <p>내용3</p>
    <p>내용4</p>
  </div>
  <div class="box3">
    <p>내용5</p>
    <p>내용6</p>
  </div>
</body>

 

replaceAll()/replaceWith()메소드

  replaceAll()메소드와 replaceWith()메소드는 선택한 요소를 새 요소로 바꿀 때 사용한다.

  주로 선택한 모든 요소를 한꺼번에 바꿀 때 사용하며 각 메소드의 기본형은 다음과 같다.

$("새 요소").replaceAll("요소 선택");
$("요소 선택").replaceWith("새 요소");

  다음은 <h2>태그에 replaceWith()함수를 지정하고, 모든 <div>태그에는 replaceAll()메소드를 지정하는 예제이다

<script>
  $(function(){
    $("h2").replaceWith("<h3>replace method</h3>");
    $("<p>Change</p>").replaceAll("div");
    //모든 <h2>요소와 <div> 요소를 새 요소로 바꾼다.
  });
</script>
</head>
<body>
  <section class="box1">
    <h2>제목1</h2>
    <div>내용1</div>
    <div>내용2</div>
  </section>
  <section class="box2">
    <h2>제목2</h2>
    <div>내용3</div>
    <div>내용4</div>
  </section>
</body>

unwrap()/wrap()/wrapAll()/wrapInner()메소드

  unwrap()메소드는 선택한 요소의 부모 요소를 삭제한다. wrap()메소드는 선택한 요소를 각각 새 요소로 감싸고,

  wrapAll()메소드는 선택한 요소를 한꺼번에 새 요소로 감싼다. wrapInner()메소드는 선택한 요소의 모든 하위 요소를

  새 요소로 감싼다.

  각 메소드의 기본형은 다음과 같다.

1. $("요소 선택").unwrap();
2. $("요소 선택").wrap(새 요소);
3. $("요소 선택").wrapAll(새 요소);
4. $("요소 선택").wrapInner(새 요소);

  1은 선택한 요소의 부모 요소를 삭제한다.

  2는 선택한 요소를 새 요소로 각각 감싼다.

  3은 선택한 요소를 새 요소로 한꺼번에 감싼다.

  4는 선택한 요소의 모든 하위 요소를 새 요소로 감싼다.

 

  다음 예제는 위의 메소드들의 사용 예제이다.

<script>
  $(function(){
    $("strong").unwrap(); //<strong> 요소를 감싸는 부모요소를 제거
    $(".ct1").wrap("<div/>"); //class값이 "ct1"인 요소를 <div>요소로 감싼다.
    $(".ct2").wrapAll("<div/>"); //class값이 "ct2"인 요소를 <div> 요소로 감싼다.
    $("li").wrapInner("<h3/>"); //<li>요소의 모든 하위 요소를 <h3>요소로 감싼다.
  });
</script>
<style>
  div{background-color:aqua;}
</style>
</head>
<body>
  <h1 id="tit_1">
    <strong>객체 조작 및 생성</strong>
  </h1>
  <p class="ct1">내용1</p>
  <p class="ct1">내용2</p>
  <p class="ct2">내용3</p>
  <p class="ct2">내용4</p>
  <ul>
    <li>내용3</li>
    <li>내용4</li>
  </ul>
</body>

 

주요 선택자 정리하기

  자주 사용하는 선택자만 정리한 예제이다.

<script>
  $(function(){
    $(".wrap_1 p:first")
    .text("내용1");
    //<div class="wrap1">
    //  <p>내용1</p>

    $(".wrap_1 p.active")
    .removeClass("active")
    .addClass("on");
    //<p class="on">내용2</p>

    $(".wrap_1 p:eq(2)a")
    .attr("href","http://www.naver.com");
    //<p><a href="#">네이버</a></p>

    $(".wrap_1 p:eq(3) input").val("Korea");
    //<input type="text" value="Korea">

    $(".wrap_2 p:first").after("<p>After(추가1)</p>");
    $(".wrap_2 p:first").before("<p>Before(추가2)</p>");
    //<div class="wrap_2">
    //  <p>Before(추가2)</p>
    //  <p>내용5</p>
    //  <p>After(추가1)</p>

    $(".wrap_3 p")
    .unwrap()
    .wrapInner("<strong/>");
    //<div class="wrap_3">
    //  <p><strong>내용7</strong></p>
    //  <p><strong>내용8</strong></p>
    //</div>
  });
</script>
</head>
<body>
  <div class="wrap_1">
    <p>텍스트1</p>
    <p class="active">내용2</p>
    <p><a href="#">네이버</a></p>
    <p>
      <input type="text" value="Hello">
    </p>
  </div>
  <div class="wrap_2">
    <p>내용5</p>
    <p>내용6</p>
  </div>
  <div class="wrap_3">
    <div>
      <p>내용7</p>
      <p>내용8</p>
    </div>
  </div>
</body>

 

(참고 : do it 자바스크립트+제이쿼리 입문)

'Front > JQuery' 카테고리의 다른 글

JQuery(이벤트 객체)  (0) 2020.05.22
JQuery(이벤트 등록 메소드)  (0) 2020.05.22
JQuery(속성 탐색 선택자)  (0) 2020.05.20
JQuery(위치탐색선택자)  (0) 2020.05.20
jquery(선택자)  (0) 2020.05.20

속성 탐색 선택자

  선택한 요소를 기준으로 일치하는 속성의 포함 여부를 따져 요소를 선택하는 선택자이다.

  예를 들어 선택한 이미지 요소 중 경로가 [images/logo.gif]와 일치하는 이미지 요소만 선택하고자 할 때 사용한다.

 

  다음은 속성 탐색 선택자의 종류와 사용법에 대해 간단히 정리한 표이다.

종류 사용법 설명
$(“요소 선택[속성]”) $(“li[title]”) <li>요소 중 title 속성이 포함된 요소만 선택
$(“요소 선택[속성=]”) $(“li[title=’리스트’]”) <li> 요소 중 title 속성값이 리스트인 요소만 선택
$(“요소 선택[속성^=텍스트]”) $(“a[href^=’http://’]”) <li> 요소 중 href 속성값이 ‘http://’로 시작하는 요소만 선택
$(“요소 선택[속성$=텍스트]”) $(“a[href$=’.com’]”) <li> 요소 중 href 속성값이 ‘.com’으로 끝나는 요소만 선택
$(“요소 선택[href*=텍스트]”) $(“a[href*=’easyspub’]”) <li> 요소 중 href 속성값 중에서 ‘easyspub’을 포함하는 요소만 선택
$(“요소 선택:hidden”) $(“li:hidden”) <li> 요소 중 숨겨져 있는 요소만 선택
$(“요소 선택:visible”) $(“li:visible”) <li>요소 중 보이는 요소만 선택
$(“.text”) $(“.text”) <input>요소 중 type 속성 값이 “text”인 요소만 선택
$(“.selected”) $(“.selected”) selected 속성이 적용된 요소만 선택
$(“.checked”) $(“.checked”) checked 속성이 적용된 요소만 선택

 

속성과 값에 따른 탐색 선택자

  선택한 요소 중 지정한 속성과 일치하는 속성이 있는지, 없는지의 포함 여부를 따져 요소를 선택한다.

  즉, 이 선택자는 포함하는 요소를 선택할 때 주로 사용한다.

 

  기본형은 각각 다음과 같다.

1. $("요소 선택[속성]")
2. $("요소 선택[속성^=값]")
3. $("요소 선택[속성$=값]")
4. $("요소 선택[속성*=값]")
5. $(":type 속성값")

  1은 선택한 요소 중 지정한 속성이 포함된 요소만 선택한다.

  2는 선택한 요소 중 속성값이 명시한 값으로 시작하는 요소만 선택한다.

  3은 선택한 요소 중 속성값이 명시한 값으로 끝나는 요소만 선택한다.

  4는 선택한 요소 중 속성값이 명시한 값을 포함하는 요소만 선택한다.

  5는 input 요소 중 type 속성값이 일치하는 요소만 선택한다.

 

  다음은 속성과 값에 따른 탐색 선택자를 사용한 예제이다.

<script>
  $(function(){
    $("#wrap a[target]")  //target 속성을 포함하는 요소만 선택
    .css({"color":"#f00"});

    $("#wrap a[href^=https]") //href 속성값이 "https"로 시작하는 요소만 선택
    .css({"color":"#0f0"});

    $("#wrap a[href$=net]") //href 속성값이 "net"으로 끝나는 요소만 선택
    .css({"color":"#00f"});

    $("#wrap a[href*=google]")  //href 속성값에 "google"이 포함된 요소만 선택
    .css({"color":"#000"});

    $("#member_f:text") //input요소 중 type속성값이 "text"인 요소만 선택
    .css({"background-color":"#ff0"});

    $("#member_f:password") //input요소 중 type속성값이 "password"인 요소만 선택
    .css({"background-color":"#0ff"});
  });
</script>
</head>
<body>
  <div id="wrap">
    <p>
      <a href="https://easyspub.co.kr" target="_blank">EasysPub</a>
    </p>
    <p>
      <a href="https://naver.com" target="_blank">Naver</a>
    </p>
    <p>
      <a href="https://google.co.kr" target="_blank">Google</a>
    </p>
    <p>
      <a href="https://daum.net" target="_blank">Daum</a>
    </p>
  </div>
  <form action="#" method="get" id="member_f">
    <p>
      <label for="user_id">아이디</label><input type="text" name="user_id" id="user_id">
    </p>
    <p>
      <label for="user_pw">비밀번호</label><input type="password" name="user_pw" id="user_pw">
    </p>
  </form>
</body>

속성 상태에 따른 탐색 선택자

  선택한 요소 중 속성 상태에 따라 요소를 선택한다.

  기본형은 다음과 같다.

1. $("요소 선택:[visible|hidden]")
2. $(":selected")
3. $(":checked")

  1은 선택한 요소 중 숨겨진 상태 또는 보이는 상태의 요소만 선택한다.

  2는 선택 상자 중 현재 선태된 옵션 요소만 선택한다.

  3은 체크박스 또는 라디오 버튼 요소 중 체크된 요소만 체크한다.

 

  다음은 속성 상태에 따른 탐색 선택자를 사용한 예제이다.

 

<script>
  $(function(){
    $("#wrap p:hidden").css({ //선택한 <p>요소 중 숨겨진 상태의 요소만 선택
      "display":"block",
      "background":"#ff0"
    });

    var z1=$("#zone1 :selected").val();//id값이 'zone1'인 요소의 하위 <select>요소 중 selected된 <option>요소만 선택한다.
    console.log(z1);

    var z2=$("#zone2 :checked").val(); //id값이 'zone2'인 요소의 하위 <input>요소 중 checked된 <input>요소만 선택한다.
    console.log(z2);

    var z3=$("#zone3 :checked").val();
  });
</script>
</head>
<body>
  <div id="wrap">
    <p>내용1</p>
    <p sytle="display:none">내용2</p>
    <p>내용3</p>
  </div>
  <form action="#">
    <p id="zone1">
      <select name="course" id="course">
        <option value="opt1">옵션1</option>
        <option value="opt2" selected>옵션2</option>
        <option value="opt3">옵션3</option>
      </select>
    </p>
    <p id="zone2">
      <input type="checkbox" name="hobby1" value="독서">독서
      <input type="checkbox" name="hobby2" value="자전거">자전거
      <input type="checkbox" name="hobby3" value="등산" checked>등산
    </p>
    <p id="zone3">
      <input type="radio" name="gender" value="male">남성
      <input type="radio" name="gender" value="female" checked>여성
    </p>
  </form>
</body>

그 외의 선택자 - 컨텐츠 탐색 선택자

  요소 또는 속성의 포함 여부에 따라 특정 요소를 선택하는 선택자 이다.

  다음은 컨텐츠 탐색 선택자의 종류와 사용법을 정리한 표이다.

종류 사용법 설명
$(“요소 선택:contains(텍스트)”) $(“li:contatins(‘내용2’)”) <li> 요소 중 내용2’라는 텍스트를 포함하는 요소만 선택한다
$(“요소 선택”).contents() $(“p”).contents() 선택한 요소의 하위 요소 중 가장 가까운 하위 요소를 선택한다.
$(“요소 선택:has(요소명)”)
$(“요소 선택”.has(:요소명)
$(“li:has(‘span’)”)
$(“li”).has(‘span’)
<li> 요소 중 <span>을 포함하는 요소만 선택한다.
$(“요소 선택:not(:제외요소)”)
$(“요소 선택”.not(:제외요소)
$(“li:not(:first)”)
$(“li”)
<li> 요소 중 첫번째 요소만 제외하고 선택한다.
$(요소 선택).filter(필터 요소) $(“li”).filter(“.list2”) <li> 요소 중 class 값이 “list2”인 요소만 선택한다.
$(요소 선택1).find(요소 선택2) $(“li”).find(“strong”) <li> 요소의 하위 요소인 <strong>만 선택한다
$(“요소 선택1”).closest(“요소 선택2”) $(“strong”).closest(“div”) <strong>을 감싸는 상위<div>요소 중 가장 가까운 상위 요소를 선택한다.
end() $(“li”).children(“a”).end() 필터링이 실행되기 이전의 요소인 <li>가 선택된다.

contains()/contents()/has()/not()/end() 탐색 선택자

  contains() 는 선택한 요소 중 지정한 텍스트를 포함하는 요소만 선태가혹, contents()는 선택한 요소의 하위 요소 중 1

  깊이의 텍스트와 태그 노드를 선택한다. has()는 선택한 요소 중 지정한 태그를 포함하는 요소만 선택한다.

  not()은 선택한 요소 중 지정한 요소만 제외한 채 선택하고, end()는 필터링되기 이전의 선택자가 적용 되도록 한다.

1. $("요소 선택:contains(텍스트)")
2. $("요소 선택").contents()
3. $("요소 선택:has(요소명)") / $("요소 선택").not(제외할 요소 선택)
4. $("요소 선택:not(제외할 요소 선택)") / $("요소 선택").not(제외할 요소 선택)
5. $("요소 선택").탐색 선택자().end()

  다음은 선택한 요소에 지정한 텍스트 또는 태그를 포함하는지의 여부에 따라 선택을 결정하는 예제이다.

<script>
  $(function(){
    $("#inner_1 p:contatins(내용1)") //선택한 <p> 요소 중 "내용1"을 포함하는 요소만 선택
    .css({"background-color":"#ff0"});

    $("#inner_1 p:has(strong)") //선택한 <p>요소 중 <strong>요소를 포함하는 요소만 선택.
    .css({"background-color":"#0ff"});

    $("#outer_wrap").contents() //id값이 "outer_wrap"인 요소의 하위 요소의 텍스트와 태그 노드 선택
    .css({"border":"1px dashed #00f"});

    $("#inner_2 p").not(":first") //id값이 "inner_2"인 요소의 하위<p>요소에서 첫번째 요소만 제외하고 선택
    .css({"background-color":"#0f0"});

    $("#inner_2 p").eq(2).end() //id값이 "inner_2"인 요소의 하위 <p> 요소에서 인덱스가 2인 요소를 선택합니다. 그러나 다시 end()메소드를 적용하기 때문에 인덱스를 선택하기 전의 선택자가 적용된다.
    .css({"color":"#f00"});
  });
</script>
</head>
<body>
  <div id="outer_wrap">
    <h1>컨텐츠 탐색 선택자</h1>
    <section id="inner_1">
      <h1>contatins(), contents(), has()</h1>
      <p>
        <span>내용1</span>
      </p>
      <p>
        <strong>내용2</strong>
      </p>
      <p>
        <span>내용3</span>
      </p>
    </section>
    <section id="inner_2">
      <h1>not(), end()</h1>
      <p>내용4</p>
      <p>내용5</p>
      <p>내용6</p>
    </section>
  </div>
</body>

find()/filter()탐색 선택자

  find() 탐색 선택자는 선택한 하위 요소 중에서 find()로 필터링한 요소만 선택한다.

  filter() 탐색 선택자는 선택한 요소 중에서 filter()로 필터링한 요소만 선택한다.

  즉, 둘의 차이점은 필터링 대상이 선택 요소를 기준으로 '하위요소'인지, '선택한요소'인지로 구분한다는 것이다.

1. $("요소 선택").find("하위 요소 중 필터링할 요소 선택")
2. $("요소 선택").filter("선택한 요소 중 필터링할 요소 선택")

  다음은 find()와 filter() 탐색 선택자를 사용한 예제이다.

<script>
  $(function(){
    $("#inner_1").find(".txt1")//id값이 "inner_1"인 요소의 하위 요소중 class 값이 ".txt1"인 요소를 선택
    .css({"background-color":"#ff0"});

    $("#inner_1 p").filter(".txt2")//id값이 "inner_1"인 요소의 하위 요소 중 class 값이 '.txt2'인 요소를 선택
    .css({"background-color":"#0ff"});

    $("#inner_2 p").filter(function(idx, obj){
      console.log(idx);
      return idx % 2 == 0;
    })
    .css({"background-color":"#0f0"});
  });
</script>
</head>
<body>
  <div id="outer_wrap">
    <h1>컨텐츠 탐색 선택자</h1>
    <section id="inner_1">
      <h2>find(), filter()</h2>
      <p class="txt1">내용1</p>
      <p class="txt2">내용2</p>
    </section>

    <section id="inner_2">
      <h2>filter(function)</h2>
      <p>index 0</p>
      <p>index 1</p>
      <p>index 2</p>
      <p>index 3</p>
    </section>
  </div>
</body>

 

선택자와 함께 알아두면 유용한 메소드

  다음은 메소드의 종류와 사용법을 정리한 표이다.

종류 사용법 설명
is(“요소 상태”) $(“.txt1”).is(“.visible”) 선택한 요소가 보이면 true를 반환
$.noConflict() var 변수 = $.noConflict();
변수(“요소 선택”)
$.noConflict()함수를 이용하면 현재 제이쿼리에서 사용중인 $ 메소드 사용을 중단하고 새로 지정한 변수명 메소드를 사용한다.
get() $(“요소 선택”).get(0).
style.color=”#f00”
선택자에 get(0)을 적용하면 자바스크립트 DOM 방식의 스타일을 사용할 수 있다.

 is()메소드

  선택한 요소의 상태가 지정한 속성과 일치하면 true를 반환하고, 그렇지 않으면 false를 반환한다.

  is() 메소드는 입력 요소의 체크박스나 선택 상자의 '선택여부'또는 '보이는지의 여부'를 알아볼 때 주로 사용한다.

$("요소 선택").is(":[checked | selected | visible | hidden | animated]")

  checked 는 선택한 체크박스 또는 라이도 버튼 요소가 체크된 상태면 true를 아니면 false를 반환한다.

  selected는 선택한 선택상자에 옵션 요소가 선택된 상태면 true를 아니면 false를 반환한다.

  visible은 선택한 요소가 보이면 true를 아니면 false를 반환한다.

  hidden은 선택한 요소가 숨겨진 상태면 true를 아니면 false를 반환한다.

  animated는 선택한 요소가 애니메이션동작 상태면 true를 아니면 false를 반환한다.

 

  다음은 is()메소드를 사용한 예제이다.

<script>
  $(function(){
    var result_1 = $("#inner_1 p")
    .eq(0).is(":visible");
    console.log(result_1); //true

    var result_2 = $("#inner_1 p")
    .eq(1).is(":visible");
    console.log(result_2); //false

    var result_3=$("#chk1").is(":checked");
    console.log(result_3); //true
    
    var result_4=$("#chk2").is(":checked");
    console.log(result_4); //false
  });
</script>
</head>
<body>
  <div id="outer_wrap">
    <h1>is()</h1>
    <section id="inner_1">
      <h2>문단 태그 영역</h2>
      <p>내용1</p>
      <p style="display:none;">내용2</p>
    </section>

    <section id="inner_2">
      <h2>폼 태그 영역</h2>
      <p>
        <input type="checkbox" name="chk1" id="chk1" checked>
        <label for="chk1">체크1</label>
        <input type="checkbox" name="chk2" id="chk2">
        <label for ="chk2">체크2</label>
      </p>
    </section>
  </div>

 

(참고 : do it 자바스크립트+제이쿼리 입문)

'Front > JQuery' 카테고리의 다른 글

JQuery(이벤트 등록 메소드)  (0) 2020.05.22
JQuery(객체조작)  (0) 2020.05.20
JQuery(위치탐색선택자)  (0) 2020.05.20
jquery(선택자)  (0) 2020.05.20
jquery(연동)  (0) 2020.05.20

탐색 선택자

  탐색 선택자를 사용하면 기본 선택자로 선택한 요소 중 원하는 요소를 한번 더 탐색해서 좀 더 정확하게

  선택할 수 있다.

  대표적인 탐색 선택자에는 배열의 인덱스(index)를 사용해 선택하는 '위치 탐색 선택자'와

  배열에 담겨진 요소 중 지정된 속성과 값으로 선택하는 '속성 탐색 선택자'가 있다.

 

위치 탐색 선택자

  기본 선택자로 선택한 요소는 배열에 담긴다. 이때 배열의 인덱스를 사용하면 특정 요소를 좀 더

  정확하게 선택할 수 있다.

  다음은 위치 탐색 선택자의 종류를 간단하게 정리한 표이다.

종류 사용법 설명
$(“요소 선택:first”)
$(“요소 선택”).first()
$(“li:first”)
$(“li”).first()
전체<li>요소 중 첫번째 요소만 선택
$(“요소 선택:last”)
$(“요소 선택).last()
$(“li:last”)
$(“li”).last()
전체 <li>요소 중 마지막 요소만 선택
$(“요소 선택:odd”) $(“li:odd”) <li> 요소 무리 중 짝수 번째(홀수 인덱스)요소만 선택
$(“요소 선택:even”) $(“li:even”) <li> 요소 무리 중 홀수 번째(짝수 인덱스)요소만 선택
$(“요소 선택:first-of-type”) $(“li:first-of-type”) <li> 요소 무리 중 첫번째 요소만 선택
$(“요소 선택:last-of-type”) $(“li:last-of-type”) <li> 요소 무리 중 마지막 요소만 선택
$(“요소 선택:nth-child(숫자)”) $(“li:nth-child(3)”) <li> 요소 무리 중 세 번째 요소만 선택
$(“요소 선택:nth-child(숫자n)”) $(“li:nth-chile(3n)”) <li> 요소 무리 중 3의 배수 번째에 있는 요소만 선택
$(“요소 선택:nth-last-of-type
(숫자)”)
$(“li:nth-last-of-type(2)”) <li> 요소 무리 중 마지막 위치로부터 두번째에 있는 요소만 선택
$(“요소 선택:only-child”) $(“li:ony-child”) 부모 요소 내에 <li> 요소가 1개뿐인 <li> 요소만 선택
$(“요소 선택:eq(index)”)
$(“요소 선택”).eq(index)
$(“li:eq(2)”)
$(“li”).eq(2)
<li> 요소 중 인덱스 2가 참조하는 요소를 불러온다
$(“요소 선택:gt(index)”) $(“li:gt(1)”) <li> 요소 중 인덱스 1보다 큰 인덱스가 참조하는 요소를 불러온다
$(“요소 선택:lt(index)”) $(“li:lt(1)”) <li> 요소 중 인덱스 1보다 작은 인덱스가 참조하는 요소를 불러온다
$(“요소 선택”).slice(index) $(“li”).slice(2) <li> 요소 중 인덱스 2부터 참조하는 요소를 불러온다

 

first/last 선택자

  first 선택자는 선택된 요소 중 첫번째 요소만 선택한다. 이와 반대로 last 선택자는 선택된 요소 중 마지막 요소만 선택

  한다.

$("요소 선택:first")또는 $("요소 선택").first()

$("요소 선택:last") 또는 $("요소 선택").last()

  다음은 문단 태그 영역에 first 선택자와 last선택자를 적용한 예제이다.

<script>
      $(function(){
       $("#menu li:first")	//index 0
       .css({"background-color":"#ff0"});

       $("#menu li:last")	//index 3
       .css({"background-color":"#0ff"});
       });
</script>
</head>
<body>
    <h1>탐색 선택자</h1>
    <ul id="menu">
      <li>내용1</li>
      <li>내용2</li>
      <li>내용3</li>
      <li>내용4</li>
    </ul>
</body>

even/odd 선택자

  even 선택자는 선택한 요소 중 홀수 번째(짝수 인덱스)요소만 선택하고, 이와 반대로 odd 선택자는

  짝수번째(홀수 인덱스)요소만 선택한다.

  다음은 even선택자와 odd선택자의 기본형이다.

$("요소 선택:even")

$("요소 선택:odd")
<script>
  $(function(){
    $("#menu li:even")	//index 0, 2
    .css({"background-color":"#ff0"});

    $("#menu li:odd")	//index 1, 3
    .css({"background-color":"#0ff"});
  });
</script>
</head>
<body>
  <h1>탐색 선택자</h1>
   <ul id="menu">
    <li>내용1</li>
    <li>내용2</li>
    <li>내용3</li>
    <li>내용4</li>
   </ul>
</body>

 

eq(index)/lt(index)/gt(index) 탐색 선택자

  eq(index)탐색 선택자는 선택한 요소 중 지정한 인덱스가 참조하는 요소만 선택하고 lt(index) 선택자는 선택한

  요소 중 지정한 인덱스보다 작은(lt, Less Than) 인덱스를 참조하는 요소만 선택한다.

  이와 반대로 gt(index)는 선택한 요소 중 지정한 인덱스보다 큰(gt, Greater Than)인덱스를 참조하는 요소만 선택한다.

  다음은 eq, lt, gt선택자의 기본형이다.

1. $("요소 선택:eq(index)") 또는 $("요소 선택").eq(index)
2. $("요소 선택:lt(index)")
3. $("요소 선택:gt(index)")

  다음은 eq(), lt(), gt()의 선택자를 적용한 예제이다.

<script>
  $(function(){
    $("#menu li").eq(2) //index 2
    .css({"background-color":"#ff0"});

    $("#menu li:lt(2)") //index 0, 1
    .css({"background-color":"#0ff"});

    $("#menu li:gt(2)") //index 3, 4
    .css({"background-color":"#f0f"});
  });
</script>
</head>
<body>
  <h1>탐색 선택자</h1>
   <ul id="menu">
    <li>내용1</li>
    <li>내용2</li>
    <li>내용3</li>
    <li>내용4</li>
    <li>내용5</li>
   </ul>
</body>

 

first-of-type/last-of-type 선택자

  first-of-type 선택자는 선택한 요소의 무리 중 첫번째 요소만 선택한다.

  이와 반대로 last-of-type은 선택한 요소의 무리 중 마지막에 위치한 요소만 선택한다.

1. $("요소 선택:first-of-type")
2. $("요소 선택:last-of-type")

 

<script>
  $(function(){
    $("li:first-of-type") //<li> 1-1, 2-1
    .css({"background-color":"#ff0"});

    $("li:last-of-type") //<li> 1-3, 2-3
    .css({"background-color":"#0ff"});
  });
</script>
</head>
<body>
  <h1>탐색 선택자</h1>
   <ul>
    <li>내용1-1</li>
    <li>내용1-2</li>
    <li>내용1-3</li>
   </ul>
   <ul>
    <li>내용2-1</li>
    <li>내용2-2</li>
    <li>내용2-3</li>
   </ul>
</body>

nth-child(숫자n)/nth-last-of-type(숫자)선택자

  nth-child(숫자n)선택자는 선택한 요소의 무리 중 지정한 숫자(배수)의 요소를 선택한다.

  예를들어 li:nth-child(2)는 선택한 요소의 무리 중 두번째의 <li>태그를 가리키고, li:nth-child(2n)은

  선택한 요소의 무리 중 2의 배수의 <li>태그를 가리킨다.

  이에 비해 nth-last-of-type(숫자) 선택자는 선택한 요소의 무리 중 마지막에서 지정한 숫자의 요소를 선택한다.

1. $("요소 선택:nth-child(숫자)")
2. $("요소 선택:nth-child(숫자n)")
3. $("요소 선택:nth-last-child(숫자)")

  1. 선택한 요소 중 지정한 숫자에 위치한 요소를 선택한다.

  2. 선택한 요소 중 지정한 배수에 위치한 요소를 선택한다.

  3. 선택한 요소 중 마지막 위치에서 지정한 숫자에 위치한 요소를 선택한다.

 

  다음은 nth-child와 nth-last-child를 적용한 예제이다.

<script>
  $(function(){
    $("#menu 1 li:nth-child(1)") //<li> 1-1
    .css({"background-color":"#ff0"});

    $("#menu 1 li:nth-child(2n)") //<li> 1-2, 1-3, 1-4
    .css({"background-color":"#f00"});
    
    $("#menu 2 li:nth-last-child(2)") //<li> 2-2
    .css({"background-color":"#0ff"});
  });
</script>
</head>
<body>
  <h1>탐색 선택자</h1>
   <ul id="menu 1">
    <li>내용1-1</li>
    <li>내용1-2</li>
    <li>내용1-3</li>
   </ul>
   <ul id="menu 2">
    <li>내용2-1</li>
    <li>내용2-2</li>
    <li>내용2-3</li>
   </ul>
</body>

only-child/slice(index)선택자

  only-child 선택자는 선택한 요소가 '부모 요소에게 하나뿐인 자식요소'인 경우에 선택한다.

  slice(start index, end index) 선택자는 선택한 요소의 지정 구간 인덱스의 요소를 선택한다.

 

1. $("요소 선택:only-child")
2. $("요소 선택").slice(start index, end index)

  1. 선택한 요소가 부모 요소에게 하나뿐인 자식 요소면 선택한다.

  2. 지정 구간 인덱스의 요소를 선택한다. 예를들어 slice(1,3)은 1초과 3이하의 요소를 선택한다.

 

  다음은 only-child 선택자와 slice 선택자를 적용한 예제이다.

<script>
  $(function(){
    $("#menu 1 li").slice(1, 3)
    .css({"background-color":"#ff0"});

    $("li:only-child")
    //<ul id="menu2">
    //  <li>내용 2-1</li>
    //</ul>
    .css({"background-color":"#0ff"});
  });
</script>
</head>
<body>
  <h1>탐색 선택자</h1>
   <ul id="menu 1">
    <li>내용1-1</li>
    <li>내용1-2</li>
    <li>내용1-3</li>
    <li>내용1-4</li>
   </ul>
   <ul id="menu 2">
    <li>내용2-1</li>
   </ul>
</body>

 

(참고 : do it 자바스크립트+제이쿼리 입문)

'Front > JQuery' 카테고리의 다른 글

JQuery(이벤트 등록 메소드)  (0) 2020.05.22
JQuery(객체조작)  (0) 2020.05.20
JQuery(속성 탐색 선택자)  (0) 2020.05.20
jquery(선택자)  (0) 2020.05.20
jquery(연동)  (0) 2020.05.20

선택자

  선택자는 HTML 요소를 선택하여 가져온다.

  제이쿼리 선택자는 CSS선택자와 마찬기지로 선택한 요소의 디자인 속성을 적용할 때 사용할 수 있다.

  이때 HTML에 작성한 스타일은 사용자의 동작에 의해 스타일을 변경할 수 없기 때문에 HTML에서 작성한

  스타일(CSS)은 '정적이다'라고 표현한다.

  하지만 제이쿼리 선택자를 사용하면 '동적'으로 스타일을 적용할 수 있다.

  선택자를 좀 더 정확하고 깊이 있게 공부하려면 문서 객체 모델에 대해 알아 두는 것이 좋다.

 

문서객체 모델

  문서객체모델(DOM, Document Object Model)이란 HTML 문서 객체 구조를 말한다.

  HTML문서의 기본 객체 구존느 최상위 객체인 <html>이 있고 하위 객체로 <head>, <body>가 있다.

  <body>태그는 문단태그, 테이블태그, 폼태그 등을 포함할 수 있다.

  문서 객체 모델에서는 모든 태그를 객체라고 부르며, 태그에는 기능과 속성이 포함되어 있다.

  

  다음 HTML의 문서 객체 구조를 살펴 보자.

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title>DOM</title>
  </head>
  <body>
    <h1>선호하는 음식</h1>
    <section id="food_1">
      <h2>한식</h2>
      <ul>
        <li>김치</li>
        <li>불고기</li>
      </ul>
    </section>
    <section id="food_2">
      <h2>양식</h2>
      <ul>
        <li>피자</li>
        <li>파스타</li>
      </ul>
    </section>
  </body>
</html>

  위 HTML의 문서 객체 구조를 그림으로 표현하면 트리구조가 된다. 이때 가장 상위에 위치하는 <html>은

  뿌리(root)라고 부르고, 뿌리로부터 가지처럼 뻗어나가는 모양의 요소를 노드(Node)라고 부른다.

  노드의 종류에는 요소노드(Element Node), 텍스트 노드(Text Node), 속성 노드(Attribute Node)가 있다.

 

선택자 사용하기

  선택자를 사용하기 위해서는 문서 객체를 불러와야 한다.

  다음은 선택자를 사용하는 방법이다.

방법1(잘못된 적용) 방법 2(정상 적용) 방법 3(정상 적용)
<head>

<script src=”js/jquery.js”></script>
<script>
  $(“#txt”).css(“color”,”red”);
</script>
</head>
<body>

  <p id=”txt”>내용</p>
</body>
<head>

<script src=”js/jquery.js”></script>
<script>
$(document).ready(function() {
$(“#txt”).css(“color”,”red);
});
</script>
</head>
<body>
<p id=”txt”>내용</p>
</body>
<head>

<script src=”js/jquery.js”></script>
<script>
$(function() {
$(“#txt”).css(“color”,”red”);
});
</script>
</head>
<body>

  <p id=”txt”>내용</p>
</body>

  다음은 제이쿼리 선택자로 스타일이나 속성을 적용하는 기본형이다.

  선택자는 $()에 문자형 데이터로 css선택자를 입력하면 된다.

1. 선택한 요소에 지정한 스타일을 적용.
$("CSS 선택자").css("스타일 속성명", "값");

2. 선택한 요소에 지정한 속성을 적용.
$("CSS 선택자").attr("속성명","값");

  다음은 제이쿼리의 아이디 선택자를 적용하여 글자 색상을 바꾸는 예제이다.

  <head>
    <meta charset="UTF-8">
    <title>선택자</title>
    <script src="js/jquery.js"></script>
    <script>
      $(function(){
        $("#title").css("color","red");
      });
    </script>
  </head>
  <body>
    <h1 id="title">제목</h1>
  </body>

기본 선택자

  <body>영역에 있는 문서 객체를 선택할 수 있는 선택자를 살펴 볼것이다.

  제이쿼리의 기본 선택자는 직접 선택자와 인접 관계 선택자로 나눌 수 있다.

구분 종류 사용법 설명
직접
선택자
전체 선택자 $(“*”) 모든 요소를 선택
아이디 선택자 $(“#아이디명”) id속성에 지정한 값을 가진 요소를 선택
클래스 선택자 $(“.클래스명”) class속성에 지정한 값을 가진 요소를 선택
요소 선택자 $(“요소명”) 지정한 요소명과 일치하는 요소들만 선택
그룹 선택자 $(“선택 1, 선택 2, 선택3,
선택 n”)
선택1, 선택2, 선택3, …선택n에 지정된 요소들을 한번에 선택
종속 선택자 $(“p.txt_1”)
$(“p#txt_1”)
<p> 요소 중 class갑싱 txt_1인 요소 또는 id값이 txt_1인 요소를 선택
인접 관계
선택자
부모 요소 선택자 $(“요소 선택”).parent() 선택한 요소의 부모 요소를 선택
상위 요소 선택자 $(“요소 선택”).parents() 선택한 요소의 상위 요소를 모두 선택
가장 가까운 상위
요소 선택자
$(“요소 선택”).closest(“div”) 선택한 요소의 상위 요소 중 가장 가까운 <div>만 선택
하위 요소 선택자 $(“요소 선택 하위 요소”) 선택한 요소에 지정한 하위 요소를 선택
자식 요소 선택자 $(“요소 선택>자식 요소”) 선택한 요소를 기준으로 자식 관계에 지정한 요소만 선택
자식 요소들 선택자 $(“요소 선택”).children() 선택한 요소의 모든 자식 요소를 선택
(이전) 요소
선택자
$(“요소 선택”).prev() 선택한 요소의 바로 이전 요소를 선택
(이전) 요소들
선택자
$(“요소 선택”).prevAll() 선택한 요소의 이전 요소 모두를 선택
지정 형(이전) 요소들
선택자
$(“요소 선택”).prevUntil
(“요소명”)
선택한 요소부터 지정한 요소의 이전 요소까지 모두 선택
동생(다음) 요소
선택자
$(“요소 선택”).next()
$(“요소 선택+다음 요소”)
선택한 요소의 다음 요소를 선택
동생(다음) 요소들
선택자
$(“요소 선택”).nextAll() 선택한 요소의 다음 요소 모두를 선택
지정 동생(다음)
요소들 선택자
$(“요소 선택”).nextUntil(“h2”) 선택한 요소부터 지정한 요소의 다음 요소까지 모두 선택
전체 형제 요소
선택자
$(“.box_1”).siblings() class 값이 box_1인 요소의 형제 요소 전체를 선택

 

직접 선택자

  직접 선택자는 주로 멀리 떨어진 요소를 직접 선택할 때 사용하는 선택자이다.

  직접 선택자의 종류로는 전체(*), 아이디(#), 클래스(.), 요소명, 그룹(,) 선택자가 있다.

 

전체 선택자

  전체(universal)요소를 선택할 때 사용한다. 즉, 이 선택자를 사용하면 현재 HTML의 모든 태그를 선택한다.

  전체 선택자의 기본형은 다음과 같다.

$("*")

  다음은 전체 선택자를 사용한 예제이다.

  <head>
    <meta charset="UTF-8">
    <title>선택자</title>
    <script src="js/jquery.js"></script>
    <script>
      $(function(){
        $("*").css("border","1px solid blue");
        //전체 요소 선택자로 두께가 1px인 파란색 실선을 생성한다
      });
    </script>
  </head>
  <body>
    <h1>제이쿼리</h1>
    <h2>선택자</h2>
    <h3>직접 선택자</h3>
  </body>

아이디 선택자

  아이디 선택자는 아이디 속성에 지정한 값을 포함하는 요소를 선택한다.

  아이디 선택자의 기본형은 다음과 같다.

$("#아이디명")

  다음은 아이디 선택자를 사용하기 위한 예제이다.

  <head>
    <meta charset="UTF-8">
    <title>선택자</title>
    <script src="js/jquery.js"></script>
    <script>
      $(function(){
        $("#tit").css("background-color","#ff0")
        .css("border", "2px solid #f00");
        // 체이닝 기법으로 선택한 요소의 css 메소드를 연속해서 2회 적용한다.
      });
    </script>
  </head>
  <body>
    <h1>제이쿼리</h1>
    <h2 id="tit">선택자</h2>
    <h3>직접 선택자</h3>
  </body>

  노란색 배경과 2px 두께의 빨간색 실선이 생성 된다.

  체이닝 기법이란?

      선택한 요소에는 메소드를 연속해서 사용할 수 있는데, 이를 마치 체인이 엮인 모양과 같다고 하여 '체이닝 기법'

      이라 한다. 제이쿼리에서는 한 객체에 다양한 메소드를 줄줄이 이어서 사용할 수 있다.

      메소드 사용이 완료 되면 문장 마지막에는 세미콜론을 작성하여 마무리한다.

$(요소선택).css(속성1, 값1).css(속성2, 값2).css(속성3, 값3);

 

클래스 선택자

  클래스 속성에 지정한 값을 포함하는 요소를 선택한다.

  기본형은 다음과 같다.

$("클래스명")

 

  다음은 문단 태그 영역에 <h2> 태그의 tit이라는 class값을 지정하는 예제이다.

<script>
      $(function(){
        $(".tit").css("background-color","#0ff")
        .css("border", "2px dashed #f00");
      });
</script>
</head>
<body>
    <h1>제이쿼리</h1>
    <h2 id="tit">선택자</h2>
    <h3>직접 선택자</h3>
</body>

 

요소명 선택자

  지정한 요소명(Tag Name)과 일치하는 요소를 모두 선택한다.

  요소명 선택자의 기본형은 다음과 같다.

$("요소명")

  다음은 문단 태그 영역에 요소명 선택자를 적용한 예제이다.

<script>
      $(function(){
        $("h2").css("background-color","#0ff")
        .css("border", "2px dashed #f00");
      });
</script>
</head>
<body>
    <h1>제이쿼리</h1>
    <h2>선택자</h2>
    <h3>직접 선택자</h3>
</body>

그룹 선택자

  그룹 선택자는 한번에 여러개의 요소를 선택할 때 사용한다.

  그룹 선택자의 기본형은 다음과 같다.

$("요소 선택1, 요소 선택2, 요소 선택3, ...요소 선택n");

  다음은 문단 태그 영역에 그룹선택자로 한번에 여러개의 요소를 선택하여 스타일(CSS)을 적용하는 예제이다.

    <script>
      $(function(){
        $("#tit3, h1").css("background-color","#0ff")
        .css("border", "2px dashed #f00");
      });
    </script>
  </head>
  <body>
    <h1>제이쿼리</h1>
    <h2>선택자</h2>
    <h3 id="tit3">직접 선택자</h3>
    <h3>인접 선택자</h3>
  </body>

 

종속 선택자

  종속 선택자는 선택한 요소의 id 또는 class 값이 일치하는 요소를 선택할 때 사용한다.

  종속 선택자의 기본형은 다음과 같다.

$("요소명#id 값")
$("요소명.class 값")

  다음은 종속 선택자로 요소명과 class값이 일치하는 요소를 선택하여 스타일(CSS)을 적용하는 예제이다.

    <script>
      $(function(){
        $("h1.tit").css("background-color","#0ff")
        .css("border", "2px dashed #f00");
      });
    </script>
  </head>
  <body>
    <h1 class="tit">제이쿼리</h1>
    <h2>선택자</h2>
    <h3 id="tit">직접 선택자</h3>
  </body>

인접 관계 선택자

  직접 선택자로 요소를 먼저 선택하고 그 다음 선택한 요소와 가까이에 있는(이전과 다음요소)요소를 선택할 때

  사용한다. 인접관계 선택자를 자유자재로 사용하려면 문서 객체 구조와 관계를 잘 이해하고 있어야 한다.

문서 객체 구조와 관계

<body>
  <div id="wrap">	// a
    <div id="inner_wrap"> // b
      <h1>제목</h1>	//d
      <h2>제목</h2>	//e
      <p>내용1</p>	//f
      <p>내용2</p>
      <p>내용3</p>	//<h1>부터 여기까지 c
    </div>
  </div>
</body>
      

  a는 c의 상위(closet)요소이고 c는 a의 하위 요소이다.

  b는 c의 부모(parent) 요소이고 c는 b의 자식(children)요소이다.

  d는 e의 형(prev)요소 이며 f는 e의 동생(next)요소이다.

1. $("h2").next().css("color", "green");
2. $("h2").parent().css("border", "1px solid #f00");

  1은 동생 요소 선택자인 next()함수를 사용하여 <h2>의 동생요소인 <p>내용1</p>를 선택한 다음

  글자색을 초록색으로 적용한다. 2는 부모 요소 선택자인 parent() 함수를 사용하여 <h2>의 부모 요소인

  <div id="inner_wrap">을 선택한 다음 1px 두께의 빨간색 실선을 생성한다.

 

부모 요소 선택자

  부모 요소 선택자는 선택한 요소를 감싸고 있는 부모 요소를 선택한다.

  기본형은 다음과 같다.

$("요소 선택").parent();

  다음은 문단 태그 영역의 부모 요소 선택자를 적용한 예제이다.

  <li id="list_1">의 부모요소는 안쪽에 있는 <ul>태그이다.

    <script>
      $(function(){
        $("#list_1").parent() //<ul> <li id="list_1">제이쿼리</li>
        .css("border", "2px dashed #f00");
      });
    </script>
  </head>
    <body>
      <h1>인접 관계 선택자</h1>
      <ul id="wrap">
        <li>리스트1
          <ul>
            <li id="list_1">리스트1-1</li>  <!-- <ul>의 자식인 <li>태그 -->
            <li>리스트1-2</li>
          </ul>
        </li>
        <li>리스트2</li>
        <li>리스트3</li>
      </ul>
    </body>

 

하위 요소 선택자

  하위 요소 선택자는 기준 요소로 선택한 하위 요소만 선택한다.

  기본형은 다음과 같다.

$("기준 요소 선택 1 요소 선택2")
ex) $("#wrap h1")	//id="wrap"인 요소가 기준 요소가 된다.

  다음은 하위 요소 선택자를 적용한 예제이다.

  id값이 "wrap"인 요소가 감싸고 있는 <h1>을 모두 선택한다.

    <script>
      $(function(){
        $("#wrap h1")
        .css({
          "background-color":"yellow",
          "border":"2px dashed #f00"
        });
      });
      </script>
  </head>
  <body>
    <div id="wrap">
      <h1>인접 관계 선택자</h1>
      <p>내용1</p>
      <section>
        <h1>하위 요소 선택자</h1>
        <p>내용2</p>
      </section>
    </div>
  </body>

 

자식 요소 선택자

  자식 요소 선택자는 선택된 요소를 기준으로 지정한 자식 요소만 선택한다.

  기본형은 다음과 같다.

1. $("요소 선택>자식 요소 선택")
2. $("요소 선택").children("자식 요소 선택")
3. $("요소 선택").children()

  1,2 는 선택한 요소를 기준으로 지정한 자식 요소만 선택한다.

  3은 선택한 요소를 기준으로 모든 자식 요소를 선택한다.

 

  다음은 문단 태그 영역에 자식 요소 선택자를 적용한 예제이다.

 

    <script>
      $(function(){
        $("#wrap > h1").css("border", "2px dashed #f00");
        //1. <div id="wrap"> <h1>인접 관계 선택자</h1>
        $("#wrap > section").children()
        //2. <section> <h1>자식 요소 선택자</h1> <p>내용2</p> </section>
        .css({
          "background-color":"yellow",
          "border":"2px solid #f00"
        });
      });
      </script>
  </head>
  <body>
    <div id="wrap">
      <h1>인접 관계 선택자</h1>
      <p>내용1</p>
      <section>
        <h1>자식 요소 선택자</h1>
        <p>내용2</p>
      </section>
    </div>
  </body>

  1번은 인자값을 사용해 css속성과 값을 전달하는 방식이다.

     $("요소 선택").css("속성명1","값1").css("속성명2","값2");

  2번은 객체를 사용해 css속성과 값을 전달하는 방식이다.

     $("요소 선택").css({"속성명1": "값1", "속성명2":"값2"...."속성명n":"값n"});

 

형(이전)/동생(다음) 요소 선택자

  형 요소 선택자는 선택한 요소를 기준으로 바로 이전 형제 요소만 선택한다.

  그리고 동생 요소 선택자는 선택한 요소를 기준으로 바로 다음 형제 요소만 선택한다.

1. $("요소 선택").prev()
2. $("요소 선택").next()
3. $("요소 선택1 + 요소 선택2")

  1. 선택한 요소를 기준으로 이전에 오는 형제 요소만 선택.

  2. 선택한 요소를 기준으로 다음에 오는 형제 요소만 선택.

  3. 선택한 요소를(요소 선택1) 기준으로 다음에 오는 선택한 요소(요소 선택2)만 선택.

 

  다음은 문단 태그 영역에 형 요소 선택자와 동생 요소 선택자를 적용한 예제이다.

  class값이 txt인 요소를 기준으로 이전 형제요소(<p>내용1</p>)와 다음 형제요소(<p>내용3</p>), 다음다음 

  형제 요소(<p>내용4</p>)를 선택한다.

    <script>
      $(function(){
        var style_1={
          "background-color":"#0ff",
          "border":"2px solid #f00"
        }
        var style_2={
          "background-color":"#ff0",
          "border":"2px dashed #f00"
        }

        $(".txt").prev()
        .css(style_1);
        //<p>내용1</p>
        //<p class="txt">내용2</p>

        $(".txt+p").css(style_2);
        //<p class="txt">내용2</p>
        //<p>내용3</p>

        $(".txt").next(),next()
        .css(style_2);
        //<p class="txt">내용2</p>
        //<p>내용3</p>
        //<p>내용4</p>
      });
      </script>
  </head>
  <body>
    <div id="wrap">
      <h1>인접 관계 선택자</h1>
      <p>내용1</p>
      <p class="txt">내용2</p>
      <p>내용3</p>
      <p>내용4</p>
    </div>
  </body>

전체 형(이전)/동생(다음)요소 선택자

  전체 형 요소 선택자는 선택한 요소를 기준으로 이전에 오는 전체 형제 요소를 선택한다.

  그리고 전체 동생 요소 선택자는 선택한 요소를 기준으로 다음에 오는 전체 형제 요소를 선택한다.

$("요소 선택").prevAll()
$("요소 선택").nextAll()

  다음은 문단 태그 영역에 전체 형 요소 선택자와 전체 동생 요소 선택자를 적용한 예제이다.

    <script>
      $(function(){
        var style_1={
          "background-color":"#0ff",
          "border":"2px solid #f00"
        }
        var style_2={
          "background-color":"#ff0",
          "border":"2px dashed #f00"
        }

        $(".txt").prevALl()
        .css(style_1);
        //<h1>인접 관계 선택자</h1>
        //<p>내용1</p>
        //<p class="txt">내용2</p>

        $(".txt+p").nextAll()
        .css(style_2);
        //<p class="txt">내용2</p>
        //<p>내용3</p>
        //<p>내용4</p>
      });
      </script>
  </head>
  <body>
    <div id="wrap">
      <h1>인접 관계 선택자</h1>
      <p>내용1</p>
      <p class="txt">내용2</p>
      <p>내용3</p>
      <p>내용4</p>
    </div>
  </body>

전체 형제 요소 선택자

  전체 형제 요소 선택자는 선택하 ㄴ요소의 모든 형제 요소를 선택한다.

  기본형은 다음과 같다.

$("요소 선택").siblings();

  다음은 문단 태그 영역에 전체 형제 요소 선택자를 적용한 예제이다.

    <script>
      $(function(){
        var style_1={
          "background-color":"#0ff",
          "border":"2px solid #f00"
        }

        $(".txt").siblings()
        .css(style_1);
        //<h1>인접 관계 선택자</h1>
        //<p>내용1</p>
        //<p class="txt">내용2</p>
        //<p>내용3</p>
        //<p>내용4</p>
      });
      </script>
  </head>
  <body>
    <div id="wrap">
      <h1>인접 관계 선택자</h1>
      <p>내용1</p>
      <p class="txt">내용2</p>
      <p>내용3</p>
      <p>내용4</p>
    </div>
  </body>

범위 제한 전체 형/동생 요소 선택자

  범위 제한 전체 형/동생 요소 선택자는 선택한 요소를 기준으로 형제 요소 중 지정한 범위 내의 전체 형 요소 또는

  전체 동생 요소를 선택한다.

  기본형은 다음과 같다.

1. $("요소 선택").prevUntil("범위 제한 요소 선택")
2. $("요소 선택").nextUntil("범위 제한 요소 선택")

  1. 선택한 요소를 기준으로 범위 제한 요소까지 전체 형 요소를 선택한다.

  2. 선택한 요소를 기준으로 범위 제한 요소까지 전체 동생 요소를 선택한다.

 

  다음은 범위 제한 전체 형/동생 선택자를 적용한 예제이다.

  class값이 txt3인 요소를 기준으로 전체 형/동생 요소를 선택한다.

    <script>
      $(function(){
        var style_1={
          "background-color":"#0ff",
          "border":"2px solid #f00"
        }

       $(".txt3").prevUntil(".title")
       .css(style_1);

       $(".txt3").nextUntil(".txt6")
       .css(style_1);
        //<h1 class="title">선택자</h1>
        //<p>내용1</p>
        //<p>내용2</p>
        //<p class="txt3">내용3</p>
        //<p>내용4</p>
        //<p>내용5</p>
        //<p class="txt6">내용6</p>
      });
      </script>
  </head>
  <body>
    <div id="wrap">
      <h1>인접 관계 선택자</h1>
      <p>내용1</p>
      <p>내용2</p>
      <p class="txt3">내용3</p>
      <p>내용4</p>
      <p>내용5</p>
      <p class="txt6">내용6</p>
    </div>
  </body>

상위 요소 선택자

  상위 요소 선택자는 선택한 요소를 기준으로 모든 상위 요소를 선택하거나 상위 요소 중 선택하고자 하는 요소만

  선택할 때 사용한다.

1. $("요소 선택").parents()
2. $("요소 선택").parents("요소 선택")

  1. 선택한 요소를 기준으로 상위 요소를 모두 선택한다.

  2. 선택한 요소를 기준으로 상위 요소 중 선택한 요소만 선택한다.

 

  다음은 문단 태그 영역에 상위 요소 선택자를 적용한 예제이다.

    <script>
      $(function(){
       $(".txt1").parents() //<p class="txt1">내용</p>의 전체 상위
                            //요소를 선택.
       .css({
         "border":"2px dashed #00f"
       });

       $(".txt2").parents("div") //<p class="txt2">내용</p>의 전체
                                 //상위 요소 중 <div>만 선택
       .css({
         "border":"2px solid #f00"
       });
      });
      </script>
  </head>
  <body>
    <h1 class="title">선택자</h1>
    <section>
      <div>
        <p class="txt1">내용</p>    //전체 상위 요소 선택
      </div>
    </section>
    <section>
      <div>
        <p class="txt2">내용</p>.		//상위 요소 중 <div>만 선택
      </div>
    </section>  
  </body>

가장 가까운 상위 요소 선택자

  가장 가까운 상위 요소 선택자는 선택한 요소를 기준으로 가장 가까운 상위 요소만 선택할 때 사용된다.

  기본형은 다음과 같다.

$("요소 선택").closest("요소 선택")

  다음은 가장 가까운 상위 요소 선택자를 적용한 예제이다.

    <script>
      $(function(){
       $(".txt1").closest("div")
       .css({
         "border":"2px solid #f00"
       });
       //<div>
       // <div>
       //   <p class="txt1">내용</p>
       // </div>
       //</div>
      </script>
  </head>
  <body>
    <h1 class="title">선택자</h1>
    <div>
      <div>
        <p class="txt1">내용</p>
      </div>
    </div> 
  </body>

 

(참고 : do it 자바스크립트+제이쿼리 입문)

'Front > JQuery' 카테고리의 다른 글

JQuery(이벤트 등록 메소드)  (0) 2020.05.22
JQuery(객체조작)  (0) 2020.05.20
JQuery(속성 탐색 선택자)  (0) 2020.05.20
JQuery(위치탐색선택자)  (0) 2020.05.20
jquery(연동)  (0) 2020.05.20

제이쿼리란?

  제이쿼리는 자바스크립트를 이용해 만든 라이브러리 언어이다.

  제이쿼리는 자바스크립트에서 사용할 때 불편했던 몇가지 점들을 간편하게 사용할 수 있도록 개선했다.

  

  호환성 문제 해결

    자바스크립트의 문서 객체 모델(DOM)과 이벤트 객체(Event Object)는 호환성(크로스 브라우징)이 떨어진다는

    단점이 있다. 예를 들어 인접 요소 선택자 중 다음 요소 선택자(nextSibling)는 IE8 이하의 브라우저에서 문서 객체를

    선택했을 때와 다른 브라우저에서 문서 객체를 선택햇을때의 결과가 다르다.

    하지만 이런 문서객체 선택자의 호환성 문제가 제이쿼리에서는 모두 해결되었다.

  

  쉽고 편리한 애니메이션 효과 기능 구현

    제이쿼리는 애니메이션과 다양한 효과(Effect)를 지원하는 메소드를 제공하기 때문에 개발 시간을 많이 단축할 수

    있다.

 

제이쿼리 라이브러리 연동

  제이쿼리 연동방법에는 다운로드 방식과 네트워크 전송방식 두가지가 있다.

  다운로드 방식은 파일을 직접 내려받아 HTML에 불러오는 방식이다.

  네트워크 전송방식은 온라인에서 제공하는 파일을 네트워크를 통해 HTML에 불러오는 방식이다.

  다운로드 방식은 네트워크 상태아 상관없이 언제든 개발할 수 있다는 장점이 있지만 컴퓨터에 파일을 내려받아야

  한다. 간단히 테스트 할 목적이라면 네트워크 전송방식이 더 편하다.

 

다운로드 방식으로 연동

  https://cdnjs.com/libraries/jquery 

 

jquery - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!

jquery - JavaScript library for DOM operations - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!

cdnjs.com

  위 사이트에서 jquery를 검색하고 라이브러리를 선택한다.

  그런 다음 버전 선택 상자에서 1.12.4를 선택.

  만약 IE8이하 브라우저까지 호환성을 염두에 둔다면 1.12.X이하 버전의 라이브러리 파일을 사용해야 한다.

  

  선택한 라이브러리 파일 목록에 [jquery.js], [jquery.min.js]가 있다. 해당 목록에 마우스 포인터를 올리면 [copy]버튼이

  나타나고 버튼을 누르면 해당하는 라이브러리 파일의 URL주소가 복사된다.

종류 설명
jquery.js 소스에 들여쓰기, 줄 바꿈, 주석까지 정리된 비압축 파일로, 제이쿼리 자체를 개발할 때 유용하다.
jquery.min.js 소스에 들여쓰기, 줄 바꿈, 줙이 무시된 압축파일로, 소스가 압축되어 있어 제이쿼리 자체를 개발하는 용도로는 적합하지 않다. 하지만 용량이 작아 로딩속도가 빠르다.

  복사한 URL로 이동한다. 그다음 Ctrl + S를 눌러 페이지를 저장한다.

  이때 js파일은 HTML파일이 있는 폴더에 'js'라는 이름으로 폴더를 만들어 저장하면 된다.

 

  HTML의<head> 영역에 <script>태그를 삽입하여 제이쿼리 라이브러리 파일을 불러온다.

<head>
  <meta charset="UTF-8">
  <title>제이쿼리 연동</title>
  <script src="js/jquery.js"></script>
</head>

  제이쿼리는 최신버전으로 자주 업그레이드 되는데 이전 버전에서 자주 사용했던 기능(메소드)이 삭제되어 사용할 수 

  없는 경우가 종종있다. 이런경우 이전버전의 기능을 사용하려면 'Migrate plugin'을 설치하면 된다.

 

네트워크 방식으로 연동

  cdnjs사이트에 들어가서 제이쿼리(1.12.4) 라이브러리 파일의 URL을 복사한다.

  <script> 태그 src속성에 복사한 URL을 붙여 넣는다.

<head>
  <meta charset="UTF-8">
  <title>제이쿼리 연동</title>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.js"></script>
</head>

 

(참고 : do it 자바스크립트+제이쿼리 입문)

'Front > JQuery' 카테고리의 다른 글

JQuery(이벤트 등록 메소드)  (0) 2020.05.22
JQuery(객체조작)  (0) 2020.05.20
JQuery(속성 탐색 선택자)  (0) 2020.05.20
JQuery(위치탐색선택자)  (0) 2020.05.20
jquery(선택자)  (0) 2020.05.20

+ Recent posts