2013-02-19 2 views
1

나는 선택 상자로 작동하는 목록이 있으므로 선택한 항목을 클릭하면 목록이 나타나고 다른 항목을 선택할 수 있습니다.선택한 클래스가있는 다음 목록의 텍스트 만 복사

이 작업은 정상적으로 작동하지만 두 개 이상의 목록을 만들 때 선택한 복사본의 이름이 선택된 모든 이름 (.cloned 범위)으로 바뀌므로 대신 jsfiddle 예제에서 다음 복사본의 이름이어야합니다 "Item 1.1Item 2.2"의 복제본 클래스가있는 첫 번째 범위는 "Item 1.1"을 표시하고 "Item1.1Item2.2"를 표시하는 것은 "Item2.2"이어야합니다 (두 번째 제목/선택된 항목 임). 목록 등등 ..

나는 문제가 다음 코드에있다 발견 : 나는 시도했다

$(".cloned").text($(".selected").text()); 

다음하지만 가공용하지 NG :

$(".cloned").text($(".options").closest(".selected").text()); 

하는 방법은 바로 아래의 목록의 .clone 기간에 목록에서 .selected 클래스를 표시 할 수 있습니까?

데모 : http://jsfiddle.net/9BR9h/1/

답변

2

closest 선택한 요소의 가장 가까운 parent가 아닌 가장 가까운 요소, 당신은 parentprev 방법을 사용할 수 있습니다 선택합니다.

$(".cloned").text(function(){ 
    return $(this).next().find(".selected").text() 
}); 

http://jsfiddle.net/zKfX2/

+1

'하면 것은 (응답 == (기능 (정의) {정의되지 않은 반환 : 당신이 text의 기능을 사용할 수 있습니다 페이지로드에

http://jsfiddle.net/B2nZH/

$('.options li').click(function() { $(this) .addClass('selected') .siblings() .removeClass('selected') .parent() .hide() .prev('.cloned') .text(this.textContent || this.innerText); }); 
$ ('vote-up-off'). 클릭(); ' – Codesleuth

+0

감사합니다. 정의되지 않은, 잘 작동하고 마지막으로 클릭 할 때 중복 제거하십시오. 하지만 기본적으로 페이지가로드 될 때 나는 여전히 같은 문제가 있습니다. – user1901096

+0

@ user1901096 환영합니다. 답변을 업데이트했습니다. – undefined

관련 문제