2009-05-13 3 views
1

저는 jquery에 비교적 익숙합니다. 그래서 간단한 질문이되기를 바랍니다. 정렬되지 않은 목록의 광고 항목에 여러 범위를 추가해야합니다.
기본적으로 각 라인 항목이 포함되어 있고 그 범위의 내용을 잡아가 ​​포함있어 개별 항목의 맨 아래에 추가 할 필요가 여기에 지금까지이 작업은 다음과 같습니다.Jquery - 동일한 클래스로 여러 스팬의 텍스트 가져 오기?

내 jQuery 코드 :

$("ul").ready(function(){ 
    var Name = $(".name") .text(); 
    var Content = $(".content") .text(); 
    $("li") .append("<span class=\"additional\"><a href=\"/addinfo.php\">"+ Name +"'s additional info</a></span>"); 
}); 

가 필요한 원래 HTML은 수정 :

<ul> 
    <li> 
    <span class="name">John Doe</span><br /> 
    <span class="content">John is an excellent Swimmer</span><br /> 
    </li> 
    <li> 
    <span class="name">Jane Doe</span><br /> 
    <span class="content">Jane loves to play basketball</span><br /> 
    </li> 
</ul> 

에게 그녀를

  • 홍길동

    존 DoeJane 미상의 추가 정보

  • 신원 미상
    제인 농구
    존 DoeJane을 재생하는 사랑 훌륭한 수영 선수 : 전자 내가 갖는 출력입니다 Doe의 추가 정보

가 여기에 원하는 결과입니다 :

  • 홍길동
    요한은
    신원 미상의 추가 정보

  • 신원 미상
    제인 농구
    신원 미상의 추가 정보를 재생하는 사랑 뛰어난 수영입니다

당신이 볼 수 있듯이, 모든 "Name"var를 가져 와서 함께 모으는 대신, 그 라인 항목의 "Name"var을 사용하는 대신. $ (this), 또는 .each 호출이 필요하다고 확신하지만 어디서나이 문서를 찾을 수없는 것 같습니다.

누군가 도움을 줄 수 있습니까? 감사합니다. 트로이

답변

7

UL 인증 목록의 각 LI 통해이

$("ul > li").each(function() { 
    var Name = $(".name", this) .text(); 
    var Content = $(".content", this) .text(); 
    $(this).append("<span class=\"additional\"><a href=\"/addinfo.php\">"+ Name +"'s additional info</a></span>"); 
}); 

이 의지 루프를 시도하고 개별 엔티티로 취급합니다. 당신에게는 두 가지 큰 문제가있었습니다. 하나는 jQuery 선택의 컨텍스트를 제한하지 않으므로 ".name"클래스를 모두 가져 와서 결합하여 두 이름을 얻은 것입니다. 그런 다음 모든 LI 객체에 값을 추가하고 있습니다.

+0

, 당신은 $로 참조 (이)를하고자 할 것 대신 $ ("li")? –

+0

great_llama 함수 안에()'this'는'li' 요소를 참조 할 것입니다 – duckyflip

+0

아니요,이게 작동하지 않습니다 ... $ (this) 또는 $ ("li") – Troy

0

그것은 바로 여기 : http://docs.jquery.com/Core/each#callback

내가 모든 LI 요소에 클래스를 할당하고으로 .Append 줄에 다음

$(".li-class").each(function(){ 
    var Name = $(".name", this) .text(); 
    var Content = $(".content", this) .text(); 
    $(this) .append("<span class=\"additional\"><a href=\"/addinfo.php\">"+ Name +"'s additional info</a></span>"); 
}); 
+0

죄송합니다. slosd, 작동하지 않습니다. – Troy

+0

사실, 나는이 작업을 잘 했어 ...이 코드를 마지막 줄에 $ (this)로 바꿨다. – Troy

관련 문제