programing

$(this)와 this(this)의 차이점은 무엇입니까?

nicescript 2022. 12. 9. 22:10
반응형

$(this)와 this(this)의 차이점은 무엇입니까?

현재 이 튜토리얼을 진행하고 있습니다.jQuery 시작

다음 두 가지 예제의 경우:

$("#orderedlist").find("li").each(function (i) {
    $(this).append(" BAM! " + i);
});
$("#reset").click(function () {
    $("form").each(function () {
        this.reset();
    });
});

첫 번째 예에서는 다음과 같이 사용하고 있습니다.$(this)(각각의) 본문을 덧붙이다li요소.두 번째 예에서는 다음을 사용합니다.this폼을 재설정할 때 직접.

$(this)보다 훨씬 더 자주 사용되는 것 같다this.

제 추측은 첫 번째 예에 있습니다.$()각각 변환하고 있습니다.li요소를 jQuery 객체로 변환하여 인식합니다.append()반면 두 번째 예에서는reset()폼에서 직접 호출할 수 있습니다.

기본적으로 우리는$()특수 jQuery 전용 함수의 경우.

이거 맞는건가요?

네, 필요한 것은$()jQuery를 사용할 때 사용합니다.DOM 작업을 수행하기 위해 jQuery의 도움이 필요한 경우 이 점을 유념하십시오.

$(this)[0] === this

기본적으로 요소 세트를 얻을 때마다 jQuery는 이를 jQuery 개체로 변환합니다.하나의 결과만 있는 경우 첫 번째 요소에 해당됩니다.

$("#myDiv")[0] === document.getElementById("myDiv");

그리고 또...

$()jQuery 컨스트럭터 함수입니다.

this는 호출의 DOM 요소를 참조합니다.

그러니까 기본적으로는$(this), 당신은 방금 통과했습니다.this…에.$()jQuery 메서드 및 함수를 호출할 수 있도록 파라미터로 지정합니다.

네, 필요합니다.$(this)jQuery 함수는 jQuery를 사용하지 않는 요소의 기본 javascript 메서드에 액세스하려면this.

사용시jQuery, 를 사용하는 것이 좋습니다.$(this)보통.다만, 그 차이를 알고 있으면(알고 익혀야 한다) 사용하는 것이 편리하고 빠를 수 있습니다.this. 예:

$(".myCheckboxes").change(function(){ 
    if(this.checked) 
       alert("checked"); 
});

보다 쉽고 순수하다

$(".myCheckboxes").change(function(){ 
      if($(this).is(":checked")) 
         alert("checked"); 
});

this요소입니다.$(this)jQuery 객체는 해당 요소로 구성됩니다.

$(".class").each(function(){
 //the iterations current html element 
 //the classic JavaScript API is exposed here (such as .innerHTML and .appendChild)
 var HTMLElement = this;

 //the current HTML element is passed to the jQuery constructor
 //the jQuery API is exposed here (such as .html() and .append())
 var jQueryObject = $(this);
});

상세보기

thisMDN실행 컨텍스트에 포함되어 있습니다.

범위는 현재 실행ECMA 컨텍스트를 참조합니다.이해하기 위해서thisJavaScript에서 실행 컨텍스트가 작동하는 방식을 이해하는 것이 중요합니다.

실행 콘텍스트가 바인드하다

제어가 실행 컨텍스트에 들어갈 때(이 범위 내에서 코드가 실행 중) 변수 환경은 셋업됩니다(Lexical 및 Variable Environment - 기본적으로 이것은 이미 액세스할 수 있는 변수 영역과 로컬 변수를 저장할 영역을 설정합니다).this어나나다

jQuery가 바인드합니다.

실행 컨텍스트는 논리 스택을 형성합니다.그 결과 스택 안쪽의 컨텍스트는 이전 변수에 액세스할 수 있지만 바인딩이 변경되었을 수 있습니다.jQuery는 콜백 함수를 호출할 때마다 를 사용하여 이 바인딩을 변경합니다.

callback.apply( obj[ i ] )//where obj[i] is the current element

applyjQuery 콜백함수 내부는 콜백함수에 의해 사용되는 현재 요소를 참조하는 것입니다.

를 들어, 「 」에서는,.each는 """를 .each(function(index,element){/*scope*/}) 범위에서는 ★★★★★★★★★★★★★★★★★★★★★★.this == element정말이에요.

jQuery 콜백은 적용 함수를 사용하여 호출되는 함수를 현재 요소와 바인드합니다.이 요소는 jQuery 객체의 요소 배열에서 가져옵니다.생성된 각 jQuery 개체에는 jQuery 개체를 인스턴스화하는 데 사용된 선택jQuery API 도구와 일치하는 요소 배열이 포함됩니다.

$(selector) 함수를 합니다(jQuery는 jQuery를 $에 대한 참조입니다.jQuery , 코드:window.jQuery = window.$ = jQuery;내부적으로 jQuery 함수는 함수 객체를 인스턴스화합니다.알 수 없는 만, 「알겠습니다」를 사용해 .$()에서는 「」를 사용합니다.new jQuery()이 jQuery 오브젝트의 구성 중 일부는 셀렉터의 모든 일치 항목을 찾는 것입니다.컨스트럭터는 html 문자열과 요소도 받아들입니다.jQuery 컨스트럭터로 전달하면 jQuery 객체에 사용할 현재 요소가 전달됩니다.그런 다음 jQuery 개체에는 셀렉터와 일치하는 DOM 요소의 배열과 같은 구조가 포함됩니다(또는 이 경우 단일 요소만 해당).this

jQuery query jQuery API 。jQuery api 함수가 호출되면 이 배열과 같은 구조에서 내부적으로 반복됩니다.내의 각.this현재 요소로 이동합니다.은, 의 코드 됩니다.여기서, 「 」는 「 」입니다.obj어레이와 같은 구조입니다.i는 현재 요소의 배열 위치에 사용되는 반복기입니다.

,, 를, 를, 를을 $(this)jQuery jQuery 。 ★★★★★★★★★★★★★★★★★★★★★★★★★★this자바스크립트

this와 javascript를 $(this)j로 하기 위해 됩니다.쿼리하다

예 =>

// Getting Name and modify css property of dom object through jQuery
var name = $(this).attr('name');
$(this).css('background-color','white')

// Getting form object and its data and work on..
this = document.getElementsByName("new_photo")[0]
formData = new FormData(this)

// Calling blur method on find input field with help of both as below
$(this).find('input[type=text]')[0].blur()

//Above is equivalent to
this = $(this).find('input[type=text]')[0]
this.blur()

//Find value of a text field with id "index-number"
this = document.getElementById("index-number");
this.value

or 

this = $('#index-number');
$(this).val(); // Equivalent to $('#index-number').val()
$(this).css('color','#000000')

언급URL : https://stackoverflow.com/questions/1051782/whats-the-difference-between-this-and-this

반응형