2009-11-21 2 views
2

큰 div 위젯을 많이 가지고 있습니다. 말해,특정 ID가있는 가장 이전의 요소 (prev() 포함)?

<div id="parent"> 
<div id="child1"> 
</div> 
<div id="child1"> 
</div> 
<div id="child2"> 
</div> 
<div id="child1"> 
</div> 
<div id="child1"> 
</div> 
</div> 

내가 마지막으로 'child1'에 있다면, 어떻게 다가 prev()로 최상위 child1에 도착합니까? 나를 위해 그것이 'child2'에 도달하면 깨집니다.

답변

4

당신이 원하는 :

$(this).prevAll('.child1').eq(0); 
+0

안녕하세요, 감사합니다! 그게 내가 찾는 것 같아! =) – mathon12

7

먼저 HTML 마크 업이 잘못되었습니다. 문서에서 동일한 ID를 가진 하나 이상의 요소가 없어야합니다.

이 속성이 요소에 이름을 할당합니다

Element identifiers: the id and class attributes

ID를 읽어보십시오. 이 이름은 문서에서 고유해야합니다.

클래스 :

이 속성은 클래스 이름 또는 요소에 클래스 이름의 세트를 할당합니다. 모든 요소 수에는 동일한 클래스 이름이 할당 될 수 있습니다. 여러 클래스 이름은 공백 문자 인 흰색 으로 구분해야합니다.

parent:firstchild을 사용하면 현재 부모 요소의 첫 번째 요소를 가져올 수 있습니다.

당신이 요소 I 클래스로 변경 '부모'

$(this).parent().find("div:first-child"); 
+0

좋아, 실제로 내가 사용 클래스하지만를 내가 ID를 사용하므로 실패했다 . 그리고 그것은 실패하고 있습니다. – mathon12

+0

감사합니다. 실제로 최상위 'child1'에 도달하면 'child1'클래스의 모든 이전 요소를 먼저 통과하는 것이 의미합니다. 직접적으로. – mathon12

1
$(this).closest('.parent').find('.child1:first') 

의 하위에 현재있는 경우 당신이 정말로 오직 주어진 ID의 한 요소가 있어야하기 때문에 당신은이 같은 것을 사용할 수 있습니다 페이지에서 내가 생각

+0

감사합니다. 그것은 실제로 내가 설명한 문제를 해결하지만 div에는 많은 하위 클래스가 있습니다. 주어진 클래스의 가장 가까운 이전 요소로 건너 뛰고 싶습니다. ' $ (this) .prev ('. child1')와 같은 것이지만 'child2'클래스를 건너 뛰고 싶습니다. – mathon12

관련 문제