2010-06-13 4 views
1

이 선택기가 유효합니까? 그리고 $ (this)는 무엇을 나타 냅니까?이 선택기가 유효합니까?

$('div', $(this).parents('div')) 

난 그냥 자바 스크립트와 jQuery를 배우고, 감사

답변

2

그것은 유효합니다. 부모 div가 모두 this 인 경우 아래에있는 div가 모두 있습니다. 아래로 속보 :

var jq = $(this);    // Get a jQuery object for `this` 
var parents = jq.parents('div'); // Find all of its parents that are divs 
var divs = $('div', parents); // Find all divs under those parent divs 

결과는 this의 부모 인 된 div의 후손 div의 모두를위한 일치와의 jQuery 개체입니다. herehere입니다.

예 :의이 this 처음에 아래 input 요소 foo을 의미한다고 가정하자

<div id='d1'> 
    <div id='d2'> 
     <input id='foo' type='button'> 
     <div id='d3'> 
     ... 
     </div> 
    </div> 
    <div id='d4'> 
     <div id='d5'> 
     ... 
     </div> 
    </div> 
</div> 

$(this).parents('div')d1d2 일치합니다. 그런 다음 $('div', parents)은 일치합니다 :

  • d3
  • d2

      사실
    • d4
    • d5
  • 0

    (부모 중 하나 인 이외에 beacuse, 그것은 d1의 아이입니다) :

    0 jQuery function (jquery() 또는 $())는 선택기들 중 적어도 하나 개의 파라미터를 필요로하고 제 선택적 하나가 $(this).parents('div') 예에서는, 컨텍스트이다.

    위의 코드는 $(this).parents('div') 문맥 안에있는 $(div)에서 수행 할 것입니다. 위의 경우

    $('#element').click(function(){ 
        $('div', this).addClass('some class'); 
    }); 
    

    , this#element을 의미하고 그 내부 div에 클래스를 추가합니다 그러나, 이것은 그것과 같은, 그것은 대부분의 경우, 그 정도 보통이 아니다.

    관련 문제