2012-01-13 2 views
0

나는 긴 기사를 통해 뿌려 divs 잔뜩 있습니다. 각각을 클릭하면 div 내에 숨겨진 텍스트 span이 표시됩니다. 그들은으로 구성하고다른 장 제목이 참조되기 전에 장 제목이 두 번 이상 참조되었는지 확인하십시오. 다음 다른 클래스를 적용

1) 장 제목
2) 섹션 번호
3) 소수점 수

예 : 정부 3시 15분 또는 화이트 하우스 15시 27분 또는 법률 1시 38분 (가 이상을 90 장).

jQuery를 사용하여, 챕터 제목이 두 번 이상 연속적으로 발생하는지 확인하려고합니다. 첫 번째 챕터를 제외한 모든 챕터에 특정 클래스를 적용합니다.

이유 존재 : 그 장 제목 경우, (icon)Whitehouse 29:8,하지만 난 아이콘을 가지고 매 장 제목을 원하지 않는 :

예 :이 장 제목을 참조 할 때, 내가 처음에 아이콘을 배치 한 다른 장 제목이 참조되기 전에 두 번 이상 참조 된 경우 두 번째 세 번째 (등)에 아이콘이없는 것을 원합니다.

다른 장 제목이 참조되기 전에 장 제목이 두 번 이상 참조되었는지 확인하는 방법을 알고있는 사람이 있습니까?

예 :

그는 (icon)Whitehouse 3:15에 많은 부정의 말을하지만, 대통령이 산 whitehouse 4:2whitehouse 4:9 말하고되지 않았다. 그는 그들이 (icon)congress 19:4을 시작할 준비가되어 있었다 보았을 때, 그는 (icon)legislation 9:41 "이 세션에 대한 모든을 환영합니다"라고 한 다음 얼굴에 legislation 3:8

답변

1

캡슐화 범위 태그 세트에있는 모든 참조 (또는 다른 컨테이너) 총리를 때려서 일반적인 속성이지만이 경우에는 span.ref라고합시다.

다음과 같은 기본 버전이 있습니다. jsFiddle.

각 장 제목에 필요한 HTML은 다음과 같은 형식이 필요

:

<span class="ref"> 
    <img src="..." /> 
    <span class="ref-title">Washington</span> 
    1:23 
</span> 

그런 다음 페이지 업데이트하려면 다음 jQuery를 사용

$(document).ready(function(){ 

    // var to store the previous reference title 
    var previousRefTitle = ''; 

    // cycle through each reference on the page 
    $('.ref').each(function(){ 

     // if chapter title is the same as the previous reference 
     if ($(this).children('.ref-title').text() == previousRefTitle) 
     { 
      // change the class 
      if ($(this).hasClass('ref')) 
      { 
       $(this).removeClass('ref'); 
       $(this).addClass('ref-following');  
      } 
     } 

     // if chapter title is new compared to the previous reference 
     else 
     { 
      // update var for next iteration 
      previousRefTitle = $(this).children('.ref-title').text(); 
     } 
    }); 

}); 
+0

을하지만,이 페이지 i에서의 단지 첫 번째 참조 첨부 된 아이콘이 필요합니다. 순차 장 제목의 첫 번째 아이콘은 내 질문 하단의 예를 참조하십시오. 클래스 추가에 대한 아이디어는 훌륭하게 들리 겠지만, 코드는 페이지의 첫 번째 참조 다음에 모든 참조에 child-ref 클래스를 추가합니다. –

+0

@ android.nick - 아, 이제 알겠습니다. 죄송합니다. 여러분이 이전에 설명한 것과 같은 많은 일을 해왔고 항상 var (out of the loop scope)를 사용하여 이전 반복의 상태를 저장함으로써 구현합니다. 그래서 현재 반복과 비교할 수 있습니다. 답변에서 코드를 업데이트하고 데모를 제공했습니다. –

+0

아름다운, 고마워. –