$(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);
});
상세보기
this
MDN실행 컨텍스트에 포함되어 있습니다.
범위는 현재 실행ECMA 컨텍스트를 참조합니다.이해하기 위해서this
JavaScript에서 실행 컨텍스트가 작동하는 방식을 이해하는 것이 중요합니다.
실행 콘텍스트가 바인드하다
제어가 실행 컨텍스트에 들어갈 때(이 범위 내에서 코드가 실행 중) 변수 환경은 셋업됩니다(Lexical 및 Variable Environment - 기본적으로 이것은 이미 액세스할 수 있는 변수 영역과 로컬 변수를 저장할 영역을 설정합니다).this
어나나다
jQuery가 바인드합니다.
실행 컨텍스트는 논리 스택을 형성합니다.그 결과 스택 안쪽의 컨텍스트는 이전 변수에 액세스할 수 있지만 바인딩이 변경되었을 수 있습니다.jQuery는 콜백 함수를 호출할 때마다 를 사용하여 이 바인딩을 변경합니다.
callback.apply( obj[ i ] )//where obj[i] is the current element
apply
jQuery 콜백함수 내부는 콜백함수에 의해 사용되는 현재 요소를 참조하는 것입니다.
를 들어, 「 」에서는,.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
'programing' 카테고리의 다른 글
PHP 클래스에 정의된 CONST를 가져올 수 있습니까? (0) | 2022.12.09 |
---|---|
최종적으로 블록에 예외를 발생시킵니다. (0) | 2022.12.09 |
Linux(Mageia)의 NetBeans에서 Java 애플리케이션에서 MariaDB에 연결 (0) | 2022.12.09 |
__proto__ JavaScript의 VS. 프로토타입 (0) | 2022.12.09 |
mysql - 테이블 간에 행을 이동합니다. (0) | 2022.12.09 |