2012-11-26 7 views
1

"thead"클릭시 "arrow_o"를 숨기려고하는데 작동하지 않습니다. jquerys "children"은 테이블에서 작동하지 않습니까?클릭시 자식 요소 숨기기

HTML

<thead class="thead"> 
    <tr> 
    <th> 
     <div class="arrow_o"></div> 
    </th> 
    </tr> 
</thead> 

JS

$(document).ready(function() { 
    $('.thead').click(function() { 
    $(this).children('.arrow_o').hide(); 
    }); 
}); 
+0

특정 jQuery 메서드에 문제가있는 경우 [해당 메서드의 doco] (http://api.jquery.com/children/)를 시작하는 것이 좋습니다 ... – nnnnnn

답변

5

.children() 메소드는 .find 다르다()()는 는 DOM 트리 아래 하나의 레벨을하는 동안 .find (이동)은 하위 레벨 요소 (손자, 등)를 선택하기 위해 여러 수준 아래로 을 트래버스 할 수 있습니다.

그래서이 :

$(document).ready(function() { 
    $('.thead').click(function() { 
    $(this).find('.arrow_o').hide(); 
    }); 
}); 
+0

정말 고마워요. :) – user1766306

+0

또한 Vega의 대답을 확인하십시오. $ (selector, this)는 하위 요소를 가져 오기가 다소 덜 읽기 쉬운 방법이라면 우아합니다. – Kato

+0

@Kato jQuery에서 컨텍스트를 설정하는 것은 본질적으로 jQuery에서 내부적으로 특정 컨텍스트에서'.find()'메서드를 사용하여 변환되므로 더 읽기 쉽기 때문에 여전히 최상의 솔루션입니다. :) – Bruno

2

기본적 arrow_o가 위치되어야하는 컨텍스트를 설정 $('.arrow_o', this).hide();보십시오.

전체 코드 : 그 .children에서

$(document).ready(function() { 
    $('.thead').click(function() { 
    $('.arrow_o', this).hide(); 
    }); 
}); 
2

.children() 메소드 (즉 .children에서 .find() 다릅니다) 단지는 DOM 트리 아래 하나의 레벨을 여행하면서 .find() 은 하위 요소 (손주 등)를 선택하기 위해 여러 단계를 탐색 할 수 있습니다. 대신

jQuery children

사용 .find().