[JQUERY] jQuery를에 깊은 아이를 선택
JQUERYjQuery를에 깊은 아이를 선택
해결법
-
1.편집 : 이것은 아마 내 원래의 대답보다 더 나은 방법입니다 :
편집 : 이것은 아마 내 원래의 대답보다 더 나은 방법입니다 :
예 : http://jsfiddle.net/patrick_dw/xN6d5/5/
var $target = $('#SearchHere').children(), $next = $target; while( $next.length ) { $target = $next; $next = $next.children(); } alert( $target.attr('id') );
심지어 약간 짧은이되는 :
예 : http://jsfiddle.net/patrick_dw/xN6d5/6/
var $target = $('#SearchHere').children(); while( $target.length ) { $target = $target.children(); } alert( $target.end().attr('id') ); // You need .end() to get to the last matched set
원래 답 :
이 작업에 보일 것입니다 :
예 : http://jsfiddle.net/xN6d5/4/
var levels = 0; var deepest; $('#SearchHere').find('*').each(function() { if( !this.firstChild || this.firstChild.nodeType !== 1 ) { var levelsFromThis = $(this).parentsUntil('#SearchHere').length; if(levelsFromThis > levels) { levels = levelsFromThis; deepest = this; } } }); alert( deepest.id );
당신이 가장 깊은 특정 태그 (또는 다른 것을) 될 것이라고 알고 있다면, 당신은 예를 들어 .find ( 'DIV')와 ( '*') .find 교체하여 속도를 높일 수 있습니다.
편집 : 현재 요소가 firstChild이 없거나이하는 경우 firstChild는 1 형 노드 아니라고 경우에만 길이를 확인하도록 업데이트되었습니다.
-
2.여기 @ user113716에서 대답에 약간의 개선이 버전은 더 어린이와 반환 대상 자체가없는 경우를 처리합니다.
여기 @ user113716에서 대답에 약간의 개선이 버전은 더 어린이와 반환 대상 자체가없는 경우를 처리합니다.
(function($) { $.fn.deepestChild = function() { if ($(this).children().length==0) return $(this); var $target = $(this).children(), $next = $target; while( $next.length ) { $target = $next; $next = $next.children(); } return $target; }; }(jQuery));
-
3.난 당신이 바로 그것을 할 수 있다고 생각하지 않습니다하지만 당신은 시도 할 수 있습니다
난 당신이 바로 그것을 할 수 있다고 생각하지 않습니다하지만 당신은 시도 할 수 있습니다
var s = "#SearchHere"; while($(s + " >div ").size() > 0) s += " > div"; alert( $(s).attr('id') );
-
4.이 체인 가능 한 줄이 나를 위해 일하지만, 아래의 계층 구조에 하나의 리프 노드가 가정합니다.
이 체인 가능 한 줄이 나를 위해 일하지만, 아래의 계층 구조에 하나의 리프 노드가 가정합니다.
jQuery("#searchBeginsHere") .filter(function(i,e){ return jQuery(e).children().size() === 0; })
-
5.버전은 각각의 잎에 대한 깊은을 얻을 수 있습니다.
버전은 각각의 잎에 대한 깊은을 얻을 수 있습니다.
http://jsfiddle.net/ncppk0zw/14/
var found = $('#SearchHere *'); for (var i = 0; i < found.length; i++) { if (i > 1) { if (found[i].parentNode !== found[i-1]) { // Deepest. Next element is other leaf console.log(found[i-1]); continue; } if (i == found.length-1) { // Deepest. Last element in DOM tree console.log(found[i]); } } }
-
6.이 페이지의 유형 "PARAM"의 가장 깊은 요소를 찾을 수 있습니다. 유용한 당신은 깊은, 또는 무엇이든을 찾고 있다면.
이 페이지의 유형 "PARAM"의 가장 깊은 요소를 찾을 수 있습니다. 유용한 당신은 깊은, 또는 무엇이든을 찾고 있다면.
function deepest_child(param) { var element_list = $(param) var depth = 0 var deepest_element element_list.each( function (index) { this_depth = $(this).parents().length if (this_depth > depth) { depth = this_depth deepest_element= $(this) } }) return deepest_element }
from https://stackoverflow.com/questions/3787924/select-deepest-child-in-jquery by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 마우스 오버 툴팁과 Multiseries 라인 차트 (0) | 2020.10.22 |
---|---|
[JQUERY] 새 열을 추가있는 jqGrid (0) | 2020.10.22 |
[JQUERY] ASP.NET 웹폼에서 jQuery를 가진 '의 WebMethod'를 호출 (0) | 2020.10.22 |
[JQUERY] jQuery를하십시오 <입력 유형 = "파일"/> Firefox에서하지 않은 일에 클릭을 시뮬레이션? [복제] (0) | 2020.10.22 |
[JQUERY] 파이어 폭스, 크롬과 사파리뿐만 미세 -의 jQuery .load () IE에서 작동하지 (0) | 2020.10.21 |