jQuery 객체에서 선택기와 컨텍스트를 사용하는 방법은 무엇입니까?
jQuery 객체의 두 가지 속성인 selector와 context가 처음에는 전혀 명확하지 않았습니다. 그러다가 Baidu와 Google에서 오랫동안 검색했지만 나중에 jQuery에서 이 jquery 객체를 발견했습니다. API 문서 선택기 속성 및 컨텍스트 속성. 하하~ 그럼~ 시간이 나면 jQuery API 문서를 먼저 훑어보고 익숙해지는 것이 나처럼 아직도 인터넷에서 찾고 있지만 찾지 못하는 것보다 낫습니다. 네~ 이 글을 읽는 학생들이 아직도 이 두 속성의 의미를 모른다면 여기서 배워보세요. 사실 이 두 속성의 가장 큰 용도는 플러그인을 작성하는 것입니다. .
API 문서에 따르면:
기본적으로 context 매개변수가 지정되지 않은 경우 $()는 DOM 요소 세트 또는 jQuery 객체와 같은 context 매개변수가 지정된 경우 현재 HTML 문서에서 DOM 요소를 검색합니다. then 이 컨텍스트에서 검색됩니다. jQuery 1.3.2 이후에는 반환된 요소의 순서가 컨텍스트에 나타나는 순서와 동일합니다.
Context 매개변수는 작업 노드 객체(jQuery 객체가 아닌 DOM 객체)여야 합니다. jQuery 객체를 전달하면 검색 범위가 제한될 수도 있지만 이 경우 jQuery 객체의 context 속성은 전체 Document 객체가 됩니다.
$(expression, [context]).selector의 값은 정확히 표현식입니다
예:
$("div ul").selector//值为“div ul” $("div.test").selector//值为“div.test” $("#test ul li:first").selector//值为“test ul li:first”
즉, 표현식이 무엇이든 선택기는
$(expression, [context])입니다. 컨텍스트는 DOM 객체입니다. 이 DOM 개체와 관련하여 다른 $(expression, [context])를 사용하면 얻는 컨텍스트 개체가 다릅니다.
관련 샘플 코드:
function( selector, context, rootjQuery ) {var match, elem, ret, doc;// Handle $(""), $(null), or $(undefined) //如果selector为空格,!selector为false if (!selector) {//此时this为空jQuery对象 return this; }// Handle $(DOMElement) //nodeType节点类型,利用是否有nodeType属性来判断是否是DOM元素 if ( selector.nodeType ) {//将第一个元素和属性context指向selector this.context = this[0] = selector;this.length = 1;return this; }// The body element only exists once, optimize finding it //因为body只出现一次,利用!context进行优化 if ( selector === "body" && !context && document.body ) {//context指向document对象 this.context = document;this[0] = document.body;this.selector = selector;this.length = 1;return this; }// Handle HTML strings if ( typeof selector === "string" ) { // Are we dealing with HTML string or an ID? //以<开头以>结尾,且长度大于等于3,这里假设是HTML片段,跳过queckExpr正则检查 if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {// Assume that strings that start and end with <> are HTML and skip the regex check match = [ null, selector, null ]; } else { match = quickExpr.exec( selector ); }// Verify a match, and that no context was specified for #id if ( match && (match[1] || !context) ) {// HANDLE: $(html) -> $(array) if ( match[1] ) { context = context instanceof jQuery ? context[0] : context; doc = ( context ? context.ownerDocument || context : document );// If a single string is passed in and it's a single tag // just do a createElement and skip the rest ret = rsingleTag.exec( selector ); //如果是单独标签 if (ret) {//如果context是普通对象 if (jQuery.isPlainObject(context)) { //之所以放在数组中,是方便后面的jQuery.merge()方法调用 selector = [document.createElement(ret[1])]; //调用attr方法,传入参数context jQuery.fn.attr.call( selector, context, true ); } else { selector = [ doc.createElement( ret[1] ) ]; } //复杂HTML的处理方法 } else { ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes; }return jQuery.merge( this, selector );// HANDLE: $("#id") } else { elem = document.getElementById( match[2] );// Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 if ( elem && elem.parentNode ) {// Handle the case where IE and Opera return items // by name instead of ID //即使是documen.getElementById这样核心的方法也要考虑到浏览器兼容问题,可能找到的是name而不是id if ( elem.id !== match[2] ) {return rootjQuery.find( selector ); }// Otherwise, we inject the element directly into the jQuery object this.length = 1;this[0] = elem; }this.context = document;this.selector = selector;return this; }// HANDLE: $(expr, $(...)) //没有指定上下文,执行rootjQuery.find(),制定了上下文且上下文是jQuery对象,执行context.find() } else if ( !context || context.jquery ) {return ( context || rootjQuery ).find( selector );// HANDLE: $(expr, context) // (which is just equivalent to: $(context).find(expr) //如果指定了上下文,且上下文不是jQuery对象 } else { //先创建一个包含context的jQuery对象,然后调用find方法 return this.constructor( context ).find( selector ); }// HANDLE: $(function) // Shortcut for document ready } else if ( jQuery.isFunction( selector ) ) {return rootjQuery.ready( selector ); } //selector是jquery对象 if ( selector.selector !== undefined ) {this.selector = selector.selector;this.context = selector.context; } //合并到当前jQuery对象 return jQuery.makeArray( selector, this ); }
위 내용은 jQuery 객체에서 선택기와 컨텍스트를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











jQuery에서 PUT 요청 방법을 사용하는 방법은 무엇입니까? jQuery에서 PUT 요청을 보내는 방법은 다른 유형의 요청을 보내는 것과 유사하지만 몇 가지 세부 사항과 매개 변수 설정에 주의해야 합니다. PUT 요청은 일반적으로 데이터베이스의 데이터 업데이트 또는 서버의 파일 업데이트와 같은 리소스를 업데이트하는 데 사용됩니다. 다음은 jQuery에서 PUT 요청 메소드를 사용하는 구체적인 코드 예제입니다. 먼저 jQuery 라이브러리 파일을 포함했는지 확인한 다음 $.ajax({u를 통해 PUT 요청을 보낼 수 있습니다.

MySQL 쿼리 결과 배열을 객체로 변환하는 방법은 다음과 같습니다. 빈 객체 배열을 만듭니다. 결과 배열을 반복하고 각 행에 대해 새 개체를 만듭니다. foreach 루프를 사용하여 각 행의 키-값 쌍을 새 개체의 해당 속성에 할당합니다. 개체 배열에 새 개체를 추가합니다. 데이터베이스 연결을 닫습니다.

jQuery를 사용하여 요소의 높이 속성을 제거하는 방법은 무엇입니까? 프런트엔드 개발에서는 요소의 높이 속성을 조작해야 하는 경우가 종종 있습니다. 때로는 요소의 높이를 동적으로 변경해야 할 수도 있고 요소의 높이 속성을 제거해야 하는 경우도 있습니다. 이 기사에서는 jQuery를 사용하여 요소의 높이 속성을 제거하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. jQuery를 사용하여 높이 속성을 연산하기 전에 먼저 CSS의 높이 속성을 이해해야 합니다. height 속성은 요소의 높이를 설정하는 데 사용됩니다.

제목: jQuery 팁: 페이지에 있는 모든 태그의 텍스트를 빠르게 수정하세요. 웹 개발에서는 페이지의 요소를 수정하고 조작해야 하는 경우가 많습니다. jQuery를 사용할 때 페이지에 있는 모든 태그의 텍스트 내용을 한 번에 수정해야 하는 경우가 있는데, 이는 시간과 에너지를 절약할 수 있습니다. 다음은 jQuery를 사용하여 페이지의 모든 태그 텍스트를 빠르게 수정하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 jQuery 라이브러리 파일을 도입하고 다음 코드가 페이지에 도입되었는지 확인해야 합니다. <

제목: jQuery를 사용하여 모든 태그의 텍스트 내용을 수정합니다. jQuery는 DOM 작업을 처리하는 데 널리 사용되는 인기 있는 JavaScript 라이브러리입니다. 웹 개발을 하다 보면 페이지에 있는 링크 태그(태그)의 텍스트 내용을 수정해야 하는 경우가 종종 있습니다. 이 기사에서는 jQuery를 사용하여 이 목표를 달성하는 방법을 설명하고 구체적인 코드 예제를 제공합니다. 먼저 페이지에 jQuery 라이브러리를 도입해야 합니다. HTML 파일에 다음 코드를 추가합니다.

PHP 함수는 return 문과 객체 인스턴스를 사용하여 객체를 반환함으로써 데이터를 사용자 정의 구조로 캡슐화할 수 있습니다. 구문: functionget_object():object{}. 이를 통해 사용자 정의 속성과 메소드를 사용하여 객체를 생성하고 객체 형태로 데이터를 처리할 수 있습니다.

PHP에서 배열은 순서가 지정된 시퀀스이며 요소는 인덱스로 액세스됩니다. 객체는 new 키워드를 통해 생성된 속성과 메서드가 있는 엔터티입니다. 배열 액세스는 인덱스를 통해 이루어지며, 객체 액세스는 속성/메서드를 통해 이루어집니다. 배열 값이 전달되고 객체 참조가 전달됩니다.

C++에서는 함수가 객체를 반환할 때 주의해야 할 세 가지 사항이 있습니다. 객체의 수명 주기는 메모리 누수를 방지하기 위해 호출자가 관리합니다. 매달린 포인터를 피하고 메모리를 동적으로 할당하거나 개체 자체를 반환하여 함수가 반환된 후에도 개체가 유효한지 확인하세요. 컴파일러는 성능을 향상시키기 위해 반환된 개체의 복사 생성을 최적화할 수 있지만 개체가 값 의미 체계에 따라 전달되는 경우 복사 생성이 필요하지 않습니다.
