2011-10-19 4 views

답변

4

:

임의로 선택하여 필터링 된 정합 소자들의 세트의 각 요소의 형제하세요.

링크의 유일한 형제는 div이며 선택자 .divRe .divAbs과 일치하지 않습니다. $('.divRe').is('.divRe .divAbs')false을 반환합니다.

당신은 .find()와 결합 할 :

$(this).siblings(".divRe").find(".divAbs") 

편집 : 당신이 .has 대신 .find 후 정말있는 것처럼이 보인다. 다른 답변을 살펴보십시오.

+0

.divRe.divAbs 안에 divAbs가 들어있는 divRe ... divAbs ... no? –

+1

@RoyiNamir : 선택기를 전달하는 함수에 따라 다릅니다. 설명서를 다시 읽으십시오. '.siblings()'는 요소의 모든 형제 목록을 얻습니다. 귀하의 경우 유일한 형제는'div'입니다. 그런 다음 선택자와 일치하는 요소 만 유지하고'div'는'.divRe.divAbs'와 일치하지 않습니다. 이 경우 selector는 * 찾기 * 요소에 * 사용되지 않습니다. 이미 존재하는 엘리먼트 집합 (형제)에 대해 * 필터링 *하는 데 사용됩니다. –

0

셀렉터 ".divRe .divAbs" 셀렉터가 형제가 아닌 내부 div .divAbs과 일치합니다.

당신은 has() 사용할 수 있습니다 다음 .divRe이 하나 이상있는 경우 (예를 들어 2) .divAbs이

$(this).siblings(".divRe").find(".divAbs").length 

돌아갑니다

$(this).siblings(".divRe").has(".divAbs").length 
+0

설명이 올바르지 않습니다. 이 문맥에서''.divRe.divAbs ''는'divAbs' 클래스와'divRe' 클래스의 조상을 가진 요소와 일치합니다. –

+0

@FelixKling 네, 씁니다. – xdazz

+0

@xdazz,이게 옳지 않습니다. both.a와 .b so $ (".a.b")를 원한다면 –

2

2

그러나이

$(this).siblings(".divRe").has(".divAbs").length 

은 1을줍니다.

has() 방법을 사용하십시오.

관련 문제