jQuery 이벤트 처리 및 DOM 조작 방법

이벤트 처리 기법

jQuery를 활용한 이벤트 바인딩과 엘리먼트 선택 방법을 설명합니다.

<!DOCTYPE html>
<html>
<head>
  <title>jQuery 이벤트 예제</title>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <style>
    .menu-container { width: 400px; margin-bottom: 20px; }
    .menu-item { 
      display: inline-block; 
      padding: 10px 15px;
      margin: 5px;
      background: #e0e0e0;
      border-radius: 4px;
      cursor: pointer;
    }
  </style>
</head>
<body>
  <div class="menu-container">
    <div class="menu-item" data-id="item1">항목 1</div>
    <div class="menu-item" data-id="item2">항목 2</div>
    <div class="menu-item" data-id="item3">항목 3</div>
  </div>

  <input type="text" id="username" value="사용자명">
  <input type="password" id="pwd" disabled>

  <script>
    $(function() {
      // 엘리먼트 선택자 예제
      $(".menu-item:first").click(function() {
        alert("첫 번째 항목: " + $(this).data('id'));
      });

      $(".menu-item:last").click(function() {
        alert("마지막 항목 선택됨");
      });

      $(".menu-item:even").click(function() {
        console.log("짝수 인덱스 항목 클릭");
      });

      // 입력 필드 이벤트
      $("#username").focus(function() {
        $(this).val('');
      });

      $("#username").change(function() {
        alert("사용자명 변경됨: " + $(this).val());
      });

      // 속성 확인
      $(".menu-item").click(function() {
        if($(this).hasClass('active')) {
          $(this).removeClass('active');
        } else {
          $(this).addClass('active');
        }
      });
    });
  </script>
</body>
</html>

DOM 조작 메서드

jQuery를 이용한 문서 객체 조작 기법을 다룹니다.

<!DOCTYPE html>
<html>
<head>
  <title>DOM 조작 예제</title>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <style>
    .content-box { 
      padding: 15px; 
      margin: 10px 0;
      border: 1px solid #ddd;
    }
    .highlight { background-color: #ffeb3b; }
  </style>
</head>
<body>
  <div id="contentArea">
    <p id="text1">첫 번째 문단</p>
    <p id="text2">두 번째 문단</p>
  </div>

  <div class="control-panel">
    <button data-action="addClass">클래스 추가</button>
    <button data-action="append">내용 추가</button>
    <button data-action="css">스타일 변경</button>
    <button data-action="attr">속성 확인</button>
  </div>

  <script>
    $(document).ready(function() {
      // DOM 조작 이벤트
      $("[data-action='addClass']").click(function() {
        $("#text1").addClass("highlight");
      });

      $("[data-action='append']").click(function() {
        $("#text2").append("<span> (추가 내용)</span>");
      });

      $("[data-action='css']").click(function() {
        $("#text1").css({
          "color": "blue",
          "font-weight": "bold"
        });
      });

      $("[data-action='attr']").click(function() {
        alert("text1 ID: " + $("#text1").attr("id"));
      });

      // 위치 정보 확인
      $(".control-panel").click(function() {
        console.log("패널 위치: ", $(this).position());
      });
    });
  </script>
</body>
</html>

모바일 WeChat 브라우저 감지

사용자 환경이 WeChat 인앱 브라우저인지 확인하는 방법

function detectWechatBrowser() {
  const userAgent = navigator.userAgent.toLowerCase();
  if(userAgent.indexOf('micromessenger') !== -1) {
    console.log("WeChat 브라우저에서 실행 중");
    return true;
  }
  console.log("WeChat 외부 브라우저");
  return false;
}

// 사용 예제
if(detectWechatBrowser()) {
  document.getElementById("wechat-pay").style.display = "block";
}

태그: jQuery JavaScript 이벤트처리 DOM조작 WeChatAPI

6월 8일 00:21에 게시됨