날아라쩡글이의 블로그입니다.

jQuery DOM(부모,자식) 본문

중앙 HTA (2106기) story/javascript story

jQuery DOM(부모,자식)

날아라쩡글이 2021. 12. 23. 13:30
반응형

부모 /형제/조상 선택자  찾는 메소드

자식 선택자 찾는 메소드

  • 사용자가 필요한 값을 쉽게 읽어오기 위하여 정의할 수 있다. 
  • data-xxx이다. 
    • <tag data-xxx="값" />에서 값 읽어오기
    • var 값 = $(선택자).data('xxx');
    •  .data() 메소드로 데이터 읽어오기 
      var 구매금액 = $("#order-price").data("order-price");
      var 추가금액 = $("#add-price").data("add-price");
      var 총결제금액 = $("#total-price").data("total-price");
      • data의 경우 앞의 data-는 제외하고 데이터를 읽어오면 된다. 
    • .attr()메소드로 데이터 읽어오기 
      var 구매금액 = $("#order-price").attr("data-order-price");
      var 추가금액 = $("#add-price").attr("data-add-price");
      var 총결제금액 = $("#total-price").attr("data-total-price");
      • attr()메소드에서는 data의 이름을 전부 작성해주어야한다. 
    • 버튼에서 data-xxx의 값 읽을 경우 
    • $('"button[data-btn='delete']").click(function(){})
  • data-xxx의 값을 변경하기 
    • $(선택자).attr("data-xxx",값);
    • data의 메소드에서는 값을 변경하는 것이 존재하지 않는다. 
    •  attr은 메소드 체이닝을 지원한다. 
      • $("#add-price-2")//아이디가 add-price-2의
        .attr("data-add-price",1000)//data-add-price의 값을 1000으로 변경한다. 
        .find("strong")//자식에 strong태그를 찾는다.
        .text('1,000');//text의 값을 1,000으로 변경한다. 

엘리먼트 추가 하기 

  • append --자식으로 뒤에 추가된다.
  • prepend --자식으로 앞에 추가된다.
  • before --형제로 앞에 추가된다.
  • after --형제로 뒤에 추가된다. 
  •  
  • 자바스크립트의 집합객체를 담아놓는 변수를 알아내면 좋을텐데.. 변수명앞에 $을 붙이기로 하였다. 앞으로 자바스크립트의 메소드도 사용할 수 있는 집합객체는 앞에 $을 붙여준다. 
  • 월을 선택하면 자동으로 해당 월에 맞는 날짜들이 추가되게 하기 
  • 월별 마지막날을 나타내는 배열을 설정한다. 
    var dates = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  • 월과 날을 표시하나는 select엘리먼트를 미리 검색한다. 
      var $months = $("#select-months");
      var $dates = $("#select-dates");
    검색이 자주 일어나기 때문에 미리 변수에 넣어놓는다. 
  • 월을 표시하는 select엘리먼트가 변경될 때마다 실행되는 이벤트 핸들러 함수를 등록한다. 
    $months.append('<option value="" selected disabled>선택하세요</option>')
      for(var i = 1; i<=12; i++) {
      var option = '<option value="'+i+'">'+i+'월</option>';
      $months.append(option);
      //자식으로 뒤에 포함한다.
      }
  • 월에서 선택한 항목이 변경될 때마다 실행되는 이벤트핸들러함수를 등록한다. 
    $months.change(function(){//월이 바뀔때마다 실행된다.
    //날을 표시하는 select엘리먼트내의 모든 option엘리먼트를 삭제한다.
      $dates.empty();//비워버린다.
      //월을 표시하는 select엘리먼트내에서 현재 선택된 값을 조회한다.
      var month = $(this).val();
      //현재 선택된 월에 맞는 날짜가 포함된 옵션을 배열의 값을 참고해서 추가한다.
      for(var i = 1; i<=dates[month-1]; i++) { //month가 1월이면 1-1로 인덱스 0을 찾는다.
        var option = '<option value="'+i+'">'+i+'일</option>';
        $dates.append(option);
        //윤달은 4년에 1번으로 function을 넣으면 된다.
        //append는 계속 쌓인다.  --->append와 empty와 함께 사용된다.
        }
     
      });

선택된엘리먼트에 클래스 추가/ 삭제하는 메소드 

  • addClass(classname)
    • 엘리먼트에 지정된 클래스를 추가한다.
  • removeClass(classname)
    • 엘리먼트에 지정된 클래스를 삭제한다.
  • toggleClass(classname)
    • 엘리먼트에서 지정된 클래스를 추가하고 해당 클래스가 존재할 경우 삭제한다. 
  • hasClass(classname)
    • 엘리먼트가 지정된 클래스를 가지고 있는지 여부를 반환한다. 
  • hasClass를 제외하고 나머지는 메소드체이닝을 지원한다. 

선택된 엘리먼트에 클래스 추가/삭제하기 

  • $("#ul-dept-list li").click(function(){
      $(this).addClass('active').siblings().removeClass('active');
      })

선택된 엘리먼트에 클릭하면active하고, 있는상태에서 클릭하면 없애는 토글시키기

  • $("#ul-dept-list-2 li").click(function(){
      $(this).toggleClass('active').siblings().removeClass('active');
      })
     

 

반응형

'중앙 HTA (2106기) story > javascript story' 카테고리의 다른 글

Vue.js 설명  (0) 2022.01.12
openAPI jQurey의 ajax처리하기  (0) 2021.12.23
JQueryDOM조작  (0) 2021.12.22
jQuery 이벤트  (0) 2021.12.21
jQuery 선택자  (0) 2021.12.21
Comments