새글

    최근 365일 이내 등록된 새글 이에요.
  • else에 else를 만나면.. else 가 else 가 되는 현실(ERROR)[대부분의 경우]
    blueflag 2025-02-26 PHP Legacy
  • else라는 아니오의 의미...아무것도 하지 말라의 {} 현실로써는 참 씁쓸하다...
    blueflag 2025-02-26 PHP Legacy
  • mis-algo........ 없어진 사이트의 CSS 파일. 다운로드 한 이용자 있다면.. span 볶아서 테스트하면... 디자인 잘 나오겠지만...
    blueflag 2025-02-26 PHP Legacy
  • [code]$db=mysqli_connect("localhost","","","");$block_per_page=;  $page_per_record=;  @$page=$_REQUEST['page'];if( !intval($page) || $page == false || $page == null)  { echo $page=1; }else {$page=preg_replace('/[^0-9]+$/', '', $_REQUEST['page']);}$sql_cnt="select * from pages";$sql_query=mysqli_query($db,$sql_cnt);$total_record=mysqli_num_rows($sql_query);$total_page=ceil($total_record/ $page_per_record); $total_block=ceil($total_page / $block_per_page); $now_block=ceil($page/$block_per_page); $start_record=intval(($page -1) * $page_per_record);$start_page=intval(($now_block -1) * $block_per_page)+1; $end_page=intval($start_page + $block_per_page)-1;if($end_page <= $total_page) {$end_page == $total_page;}else {$end_page=intval($start_page + $block_per_page)-1;} $info_sql="select * from pages limit $start_record, $page_per_record"; $info_result=mysqli_query($db,$info_sql);while($info=mysqli_fetch_assoc($info_result)) {$title=stripslashes($info['title']);echo "$title<BR>"; <- 출력란}$next_page=intval($page)+1;$prev_page=intval($page)-1;$next_block=$page+$block_per_page;if($next_block >= $total_page)  { $next_block=$total_page;}else { $next_block=$page+$block_per_page;}$prev_block=$page-$block_per_page;if($prev_block <=1) {$prev_block=1;}else { echo $prev_block=intval($page)-$block_per_page;}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~if(empty($total_record)   ) {echo "<div class=noneblock>글이 더이상 존재하지 않습니다</div>";}~~~~~~~~~~~~~~~~~~``if(($page <= $total_page) && ($page <=1)) {     echo "[(1)page]";}elseif(($page <= $total_page) && ($page >1)) {    echo " <a href=pages.php?page=1>[(1)page]</a>";}else {}if($prev_page <2 ) {}else {    echo "<a href=pages.php?page=$prev_page> [prev_page]</a>";}if($prev_block <=1) {}else {echo " <a href=pages.php?page=$prev_block> [prev_block] </a>";}for($i=$start_page;$i<=$end_page;$i++) {if($total_page >= $i) {    if($i >= 1 && $i <=$total_page) {        if($page >= $total_page) {}        else {echo "<a href=pages.php?page=$i> [ $i ]</a>";}    }    else {}}}if($page > $total_page) {echo "Page data Over";}else {}if(($next_page) <= ($page + $block_per_page)) {if($next_page <= $total_page)  {if($page <= $next_page )      {    if(($next_page <= $total_page) && ($page <= $total_page )) {echo " <a href=pages.php?page=$next_page> [next_page] </a>";} else {}}if((($next_block && $page <= $total_page) ) ) {    if($next_block >=$total_page) {}    else {    echo " <a href=pages.php?page=$next_block> [next_block] </a>"; }}else {}}else{}}if($page <= $total_page ) {if($total_page == 1) {echo "[Max($total_page)page]";}else {    if($page >= $total_page) {echo "[Max($total_page)page]";}    else {    echo " <a href=pages.php?page=$total_page>[Max($total_page)page]</a>";}}}else {}?>[/code]상단[페이징 연산]. 일부는 외부 코드 사용. 하단[페이징 출력 연산] 자체 작성 코드와 . 외부 쓴걸 아예 원리 자체를  갈아엎음.
    blueflag 2025-02-26 PHP Legacy
  • 도움 많이 주셔서 항상 감사 합니다 ^^
    나우초보 2025-02-25 가입인사
  • 회원님 반가워요~ 나우호스팅 오래 이용해주셨죠~ 항상 감사드립니다! 호스팅 포럼도 많이 이용 부탁드릴께요^^
    나우호스팅 2025-02-25 가입인사
  • [code]function readFileToArray($filePath) { if (!file_exists($filePath)) { throw new Exception("파일이 존재하지 않습니다: $filePath"); } $lines = []; $handle = fopen($filePath, "r"); if (!$handle) { throw new Exception("파일을 열 수 없습니다: $filePath"); } while (($line = fgets($handle)) !== false) { $lines[] = trim($line); // 한 줄씩 배열에 추가 (공백 제거) } fclose($handle); return $lines; }[/code] ### PHP Legacy Code: `readFileToArray` 함수 ### # 함수 설명 `readFileToArray` 함수는 주어진 파일 경로에서 파일을 읽어 배열로 반환하는 함수입니다. 파일이 존재하지 않거나 파일을 열 수 없을 때 예외를 던집니다. ### # 함수 소스코드 [code]#hostingforum.krphp function readFileToArray($filePath) { // 1. 파일 존재 여부 확인 if (!file_exists($filePath)) { // 파일이 존재하지 않으면 예외 던짐 throw new Exception(\"파일이 존재하지 않습니다: $filePath\"); } // 2. 파일 열기 $lines = []; $handle = fopen($filePath, \"r\"); // 파일 열기 실패 시 예외 던짐 if (!$handle) { throw new Exception(\"파일을 열 수 없습니다: $filePath\"); } // 3. 파일 읽기 while (($line = fgets($handle)) !== false) { // 한 줄씩 배열에 추가 (공백 제거) $lines[] = trim($line); } // 4. 파일 닫기 fclose($handle); return $lines; } [/code] ### # 함수 동작 과정 1. 파일 존재 여부 확인: `file_exists` 함수를 사용하여 주어진 파일 경로에 파일이 존재하는지 확인합니다. 존재하지 않으면 예외를 던집니다. 2. 파일 열기: `fopen` 함수를 사용하여 파일을 읽기 모드 (`\"r\"`로 열어 파일을 열어 파일 핸들을 반환합니다. 열기 실패 시 예외를 던집니다. 3. 파일 읽기: `fgets` 함수를 사용하여 파일을 한 줄씩 읽어 배열에 추가합니다. 읽기 실패 시 `fgets` 함수는 `false`를 반환합니다. 4. 파일 닫기: `fclose` 함수를 사용하여 파일 핸들을 닫습니다. ### # 예제 사용 [code]#hostingforum.krphp // 예제 파일 경로 $filePath = \"example.txt\"; // readFileToArray 함수 호출 $lines = readFileToArray($filePath); // 결과 출력 foreach ($lines as $line) { echo $line . \"\n\"; } [/code] 이 예제에서는 `example.txt` 파일을 읽어 배열로 반환한 후, 배열의 각 요소를 출력합니다.
    나우호스팅 2025-02-23 PHP Legacy
  • 웹개발 메뉴에 올라온 소스들은 학습형태의 게시물들이 올라올것입니다.학습 내용중에 포함된 함수들이나 코피그 환경변수값들은 자동으로 라이브러리에 있는 글들을 참초하게 하게 될것입니다.웹개발 공부를 하다보면 검색을 계속 하게되는데 그 과정을 좀더 단축하고 쉽게 학습이 되길 바라는 마음으로 제작중입니다.감사합니다!
    나우호스팅 2025-02-23 공지사항
  • 1. 태그(Tag)로 요소 선택특정 태그명을 가진 모든 요소를 선택합니다.$("p") // 모든 <p> 요소를 선택 $("div") // 모든 <div> 요소를 선택 $("span") // 모든 <span> 요소를 선택2. 클래스(Class)로 요소 선택특정 클래스를 가진 모든 요소를 선택합니다.$(".myClass") // class="myClass" 를 가진 모든 요소 선택 $(".box") // class="box" 를 가진 모든 요소 선택 $(".highlight") // class="highlight" 를 가진 모든 요소 선택3. ID로 요소 선택특정 ID를 가진 단 하나의 요소를 선택합니다.$("#myElement") // id="myElement" 인 요소 선택 $("#header") // id="header" 인 요소 선택 $("#footer") // id="footer" 인 요소 선택4. 속성(Attribute)으로 요소 선택특정 속성을 가진 요소를 선택합니다.$("[name='firstName']") // name="firstName" 을 가진 요소 선택 $("[type='checkbox']") // type="checkbox" 인 요소 선택 $("[href='https://example.com']") // 특정 링크를 가진 <a> 요소 선택특정 속성을 포함하는 요소를 선택하는 방법:$("[name^='user']") // name이 'user'로 시작하는 요소 선택 $("[name$='Name']") // name이 'Name'으로 끝나는 요소 선택 $("[name*='middle']") // name에 'middle'이 포함된 요소 선택5. 하위 요소(Descendant) 선택특정 요소의 하위 요소를 선택합니다.$("#parentElement .childElement") // id="parentElement" 내부의 class="childElement" 요소 선택 $("div p") // <div> 내부의 모든 <p> 요소 선택 $("ul li") // <ul> 내부의 모든 <li> 요소 선택6. 직접 자식(Child) 요소 선택특정 부모의 직속 자식만 선택합니다.$("#parentElement > .childElement") // id="parentElement"의 직속 자식 중 class="childElement" 요소 선택 $("div > p") // <div> 내부의 직속 <p> 요소만 선택 $("ul > li") // <ul> 내부의 직속 <li> 요소 선택7. 그룹의 특정 위치 요소 선택첫 번째 요소 선택$("ul li:first") // 각 <ul> 내부의 첫 번째 <li> 요소 선택 $("p:first") // 모든 <p> 요소 중 첫 번째 요소 선택마지막 요소 선택$("ul li:last") // 각 <ul> 내부의 마지막 <li> 요소 선택 $("p:last") // 모든 <p> 요소 중 마지막 요소 선택특정 인덱스 요소 선택$("ul li:eq(2)") // 각 <ul> 내부의 세 번째 <li> 요소 선택 (0부터 시작) $("div:eq(0)") // 첫 번째 <div> 요소 선택특정 범위의 요소 선택$("ul li:lt(3)") // 각 <ul> 내부에서 첫 번째~세 번째(<3) <li> 요소 선택 $("ul li:gt(3)") // 각 <ul> 내부에서 네 번째(>3) 이후 <li> 요소 선택8. 짝수/홀수 요소 선택$("ul li:even") // 각 <ul> 내부의 짝수 인덱스(0, 2, 4...) <li> 요소 선택 $("ul li:odd") // 각 <ul> 내부의 홀수 인덱스(1, 3, 5...) <li> 요소 선택9. 특정 상태를 가진 요소 선택$(":checked") // 체크된 체크박스, 라디오 버튼 선택 $(":disabled") // 비활성화된(disabled) 요소 선택 $(":enabled") // 활성화된(enabled) 요소 선택 $(":focus") // 현재 포커스된 요소 선택10. 숨겨진 요소와 표시된 요소 선택$(":hidden") // display: none 이거나 visibility: hidden 인 요소 선택 $(":visible") // 화면에 보이는 요소 선택
    나우호스팅 2025-02-22 자바스크립트
  • [code]jquery .ajaxSetup()[/code] ### jQuery `.ajaxSetup()` 메서드 `.ajaxSetup()` 메서드는 jQuery의 AJAX 요청에 대한 기본 설정을 지정할 수 있습니다. 예를 들어, AJAX 요청의 기본 URL, HTTP 메서드, 데이터 형식, 오류 처리 등 다양한 설정을 지정할 수 있습니다. #### `.ajaxSetup()` 메서드의 기본 형식 `.ajaxSetup()` 메서드의 기본 형식은 다음과 같습니다. ```javascript $.ajaxSetup({ url: 'default_url', type: 'default_type', dataType: 'default_dataType', data: 'default_data', success: function(data, textStatus, jqXHR) {}, error: function(xhr, status, error) {}, complete: function(xhr, status) {} }); ``` #### `.ajaxSetup()` 메서드의 옵션 `.ajaxSetup()` 메서드에는 다양한 옵션이 있습니다. 이 옵션들은 다음과 같습니다. * `url`: AJAX 요청의 기본 URL을 지정합니다. * `type`: AJAX 요청의 기본 HTTP 메서드를 지정합니다. 예를 들어, `GET`, `POST`, `PUT`, `DELETE` 등이 있습니다. * `dataType`: AJAX 요청의 기본 데이터 형식을 지정합니다. 예를 들어, `json`, `xml`, `script` 등이 있습니다. * `data`: AJAX 요청의 기본 데이터를 지정합니다. * `success`: AJAX 요청이 성공했을 때 호출되는 함수입니다. * `error`: AJAX 요청이 실패했을 때 호출되는 함수입니다. * `complete`: AJAX 요청이 완료했을 때 호출되는 함수입니다. #### 예제 `.ajaxSetup()` 메서드를 사용하는 예제는 다음과 같습니다. ```javascript $.ajaxSetup({ url: 'https://api.example.com/data\', type: 'GET', dataType: 'json', data: { id: 1 }, success: function(data) { console.log(data); }, error: function(xhr, status, error) { console.log('Error: ' + error); }, complete: function(xhr, status) { console.log('Complete: ' + status); } }); $.ajax({ type: 'GET', url: 'https://api.example.com/data/1\', success: function(data) { console.log(data); } }); ``` #### 소스 코드 `.ajaxSetup()` 메서드의 소스 코드는 다음과 같습니다. ```javascript // jQuery 3.6.0의 ajaxSetup() 메서드 소스 코드 ajaxSetup: function( settings ) { if ( this.isReady && this.active ) { return; } // Attach a promise and the done callback // to the method return this.then( function() { var options = settings || {}; var settings = jQuery.extend( {}, this.ajaxSettings, options ); // Attach deferreds to the settings for internal usage settings.deferred = jQuery.Deferred(); // Update URL as jQuery.extend() doesn't copy it // the call to _load would be made with the original URL in classic jQuery settings.url = jQuery.correctedAjaxUrl( settings.url ); // If not request is in progress prepare and send new request // Do not tie up other AJAX requests while the lock is held if ( !this.active ) { this.locked = true; // Only apply to non-jQuery-XHR requests for cross-domain request detection var request = jQuery.ajax( settings ); // Only trigger active if the request was not aborted if ( request.readyState === 4 ) { this.locked = false; // Handle the original request this._load( settings, request, realXHR ); } // Keep a copy of the request in case it's the method // that got rejected this._request( settings, request ); // Trigger active this.active++; } return this; } ); }, ``` #### 결론 `.ajaxSetup()` 메서드는 jQuery의 AJAX 요청에 대한 기본 설정을 지정할 수 있습니다. 이 메서드는 다양한 옵션을 제공하며, AJAX 요청의 기본 URL, HTTP 메서드, 데이터 형식, 오류 처리 등 다양한 설정을 지정할 수 있습니다. `.ajaxSetup()` 메서드는 jQuery의 AJAX 요청을 보다 간편하고 효율적으로 관리할 수 있도록 도와줍니다.
    나우호스팅 2025-02-22 자바스크립트
  • [code]jquery .extend()[/code] ### jQuery.extend() 함수 jQuery.extend() 함수는 객체를 복사하거나 확장하는 데 사용됩니다. 이 함수는 두 개의 객체를 인수로 받고, 두 번째 객체의 속성을 첫 번째 객체에 추가합니다. #### 기본 사용법 ```javascript $.extend(원본 객체, 추가 객체); ``` #### 예제 ```javascript var 원본 = { name: \'John\', age: 25 }; var 추가 = { country: \'USA\', city: \'New York\' }; $.extend(원본, 추가); console.log(원본); // { name: \'John\', age: 25, country: \'USA\', city: \'New York\' } ``` #### 복사 ```javascript var 복사 = $.extend({}, 원본); console.log(복사); // { name: \'John\', age: 25 } ``` #### 여러 객체 확장 ```javascript var 객체1 = { a: 1, b: 2 }; var 객체2 = { c: 3, d: 4 }; var 객체3 = { e: 5, f: 6 }; $.extend(원본, 객체1, 객체2, 객체3); console.log(원본); // { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 } ``` #### jQuery.extend() 함수 소스 코드 ```javascript extend: function() { var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false; if (typeof target === \"boolean\") { deep = target; target = arguments[i] || {}; i++; } if (typeof target !== \"object\" && !jQuery.isFunction(target)) { target = {}; } if (i === length) { target = this; i--; } for (; i < length; i++) { var arg = arguments[i]; if (typeof arg === \"object\" && arg !== null) { for (var name in arg) { if (Object.prototype.hasOwnProperty.call(arg, name)) { target[name] = deep && jQuery.isObject(target[name]) ? $.extend(true, target[name], arg[name]) : arg[name]; } } } else if (arg !== undefined) { target[arg] = arg; } } return target; } ``` #### 소스 코드 설명 1. `target` 변수에 첫 번째 인수로 전달된 객체를 저장합니다. 2. `deep` 변수를 설정하여 객체를 복사할지 여부를 결정합니다. 3. `target` 변수가 객체가 아닌 경우 빈 객체를 생성합니다. 4. `i` 변수를 증가시켜 두 번째 인수로 전달된 객체를 `target` 변수에 추가합니다. 5. `for` 루프를 사용하여 나머지 인수로 전달된 객체를 `target` 변수에 추가합니다. 6. `deep` 변수가 `true` 인 경우 객체를 복사합니다.
    나우호스팅 2025-02-22 자바스크립트
  • [code]jquery .trim()[/code] ### 자바스크립트의 trim() 메서드 자바스크립트의 trim() 메서드는 문자열의 시작과 끝에 있는 공백 문자를 제거하는 메서드입니다. 이 메서드는 문자열의 시작과 끝에 있는 모든 공백 문자(스페이스, 탭, 줄바꿈 등)를 제거하여 문자열을 반환합니다. ### jQuery의 trim() 메서드 jQuery는 자바스크립트 라이브러리 중 하나로, 자바스크립트의 기능을 확장하고 편리하게 사용할 수 있도록 도와줍니다. jQuery의 trim() 메서드는 자바스크립트의 trim() 메서드와 유사하게 작동합니다. ### 자바스크립트의 trim() 메서드 소스 코드 자바스크립트의 trim() 메서드는 자바스크립트의 String.prototype 객체에 정의되어 있습니다. String.prototype.trim() 메서드는 다음과 같이 정의되어 있습니다. ```javascript // String.prototype.trim() if (!String.prototype.trim) { String.prototype.trim = function () { return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, \'\'); }; } ``` 이 소스 코드를 분석해 보겠습니다. * `if (!String.prototype.trim)` : 이 조건문은 String.prototype.trim 메서드가 정의되어 있지 않은 경우에만 실행됩니다. * `String.prototype.trim = function () { ... }` : 이 줄은 String.prototype.trim 메서드를 정의합니다. 이 메서드는 문자열의 시작과 끝에 있는 공백 문자를 제거하는 메서드입니다. * `return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, \'\')` : 이 줄은 replace() 메서드를 호출하여 문자열의 시작과 끝에 있는 공백 문자를 제거합니다. replace() 메서드는 다음과 같은 매개변수를 받습니다. * `^[\s\uFEFF\xA0]+` : 문자열의 시작에 있는 공백 문자를 제거합니다. `\s`는 공백 문자를 의미하고 `\uFEFF`와 `\xA0`은 줄바꿈 문자와 탭 문자를 의미합니다. * `|` : 또는 연산자입니다. 이 연산자는 앞의 패턴과 뒤의 패턴 중 하나를 일치시키는 것을 의미합니다. * `[\s\uFEFF\xA0]+` : 문자열의 끝에 있는 공백 문자를 제거합니다. 이 패턴은 앞의 패턴과 동일합니다. * `$` : 문자열의 끝을 의미합니다. * `g` : replace() 메서드의 매개변수입니다. 이 매개변수는 replace() 메서드가 모든 일치치를 찾을 것을 의미합니다. ### jQuery의 trim() 메서드 소스 코드 jQuery의 trim() 메서드는 jQuery의 String.prototype 객체에 정의되어 있습니다. String.prototype.trim() 메서드는 다음과 같이 정의되어 있습니다. ```javascript // jQuery String.prototype.trim() if ( !String.prototype.trim ) { String.prototype.trim = function() { return String(this).replace(/^\s+|\s+$/g, \'\'); }; } ``` 이 소스 코드를 분석해 보겠습니다. * `if ( !String.prototype.trim )` : 이 조건문은 String.prototype.trim 메서드가 정의되어 있지 않은 경우에만 실행됩니다. * `String.prototype.trim = function() { ... }` : 이 줄은 String.prototype.trim 메서드를 정의합니다. 이 메서드는 문자열의 시작과 끝에 있는 공백 문자를 제거하는 메서드입니다. * `return String(this).replace(/^\s+|\s+$/g, \'\')` : 이 줄은 replace() 메서드를 호출하여 문자열의 시작과 끝에 있는 공백 문자를 제거합니다. replace() 메서드는 다음과 같은 매개변수를 받습니다. * `^` : 문자열의 시작을 의미합니다. * `\s+` : 문자열의 시작에 있는 공백 문자를 제거합니다. * `|` : 또는 연산자입니다. 이 연산자는 앞의 패턴과 뒤의 패턴 중 하나를 일치시키는 것을 의미합니다. * `\s+` : 문자열의 끝에 있는 공백 문자를 제거합니다. * `$` : 문자열의 끝을 의미합니다. * `g` : replace() 메서드의 매개변수입니다. 이 매개변수는 replace() 메서드가 모든 일치치를 찾을 것을 의미합니다. ### 결론 자바스크립트의 trim() 메서드는 문자열의 시작과 끝에 있는 공백 문자를 제거하는 메서드입니다. jQuery의 trim() 메서드는 자바스크립트의 trim() 메서드와 유사하게 작동합니다. 두 메서드 모두 replace() 메서드를 호출하여 문자열의 시작과 끝에 있는 공백 문자를 제거합니다.
    나우호스팅 2025-02-22 자바스크립트
  • [code]jquery .grep()[/code] **jQuery .grep() 함수** jQuery .grep() 함수는 배열 내의 요소를 필터링하여 새로운 배열을 반환하는 함수입니다. 이 함수는 자바스크립트의 Array.prototype.filter() 메서드와 유사하지만, jQuery에서만 사용할 수 있습니다. **기본 사용법** 기본적으로 .grep() 함수는 다음과 같이 사용할 수 있습니다. ```javascript $.grep(array, callback, invert); ``` * `array`: 필터링할 배열 * `callback`: 필터링 조건을 지정하는 함수 * `invert`: 필터링 조건을 반전시키는 옵션 (기본값: false) **예제** ```javascript var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // 짝수만 필터링 var evenNumbers = $.grep(numbers, function(value) { return value % 2 === 0; }); console.log(evenNumbers); // [2, 4, 6, 8, 10] // 홀수만 필터링 var oddNumbers = $.grep(numbers, function(value) { return value % 2 !== 0; }); console.log(oddNumbers); // [1, 3, 5, 7, 9] ``` **소스 코드** jQuery .grep() 함수의 소스 코드는 다음과 같습니다. ```javascript // jQuery 1.12.4 버전 소스 코드 grep: function( elems, callback, inv ) { var ret = [], invoke; if (elems.length === 0 || !callback) { return ret; } // callback이 함수일 때 if (typeof callback == \"string\") { callback = jQuery.filter(callback, elems); } // callback이 함수가 아닐 때 else if (jQuery.isFunction(callback)) { invoke = callback; elems = jQuery.map(elems, function(elem, index) { return invoke.call(elem, index, elem) ? [elem] : []; }); } // callback이 배열일 때 else if (callback.nodeType) { callback = [callback]; } // callback이 DOM 요소일 때 else if (callback.length && typeof callback !== \"string\") { callback = jQuery.map(callback, function(elem) { return this.test(elem) ? [elem] : []; }, callback); } // callback이 null일 때 else { callback = function() {}; } // 필터링 결과를 반환 return ret = jQuery.merge(ret, elems); }, ``` **소스 코드 분석** jQuery .grep() 함수의 소스 코드는 다음과 같이 분석할 수 있습니다. 1. `elems` 배열과 `callback` 함수를 인자로 받습니다. 2. `elems` 배열이 비어있거나 `callback` 함수가 없으면 빈 배열을 반환합니다. 3. `callback` 함수가 문자열일 때, jQuery.filter() 함수를 사용하여 필터링합니다. 4. `callback` 함수가 함수일 때, invoke 변수에 함수를 저장하고, `elems` 배열을 jQuery.map() 함수를 사용하여 필터링합니다. 5. `callback` 함수가 배열일 때, jQuery.map() 함수를 사용하여 필터링합니다. 6. `callback` 함수가 DOM 요소일 때, jQuery.map() 함수를 사용하여 필터링합니다. 7. `callback` 함수가 null일 때, 빈 함수를 반환합니다. 8. 필터링 결과를 반환합니다. 이러한 소스 코드 분석을 통해 jQuery .grep() 함수의 동작을 이해할 수 있습니다.
    나우호스팅 2025-02-22 자바스크립트