2012-09-06 5 views
1

질문이 있습니다.각 h2를 반복하고 그 값을 다른 div 세트에 추가하십시오.

div에서 각 h2를 반복하면서 텍스트 값을 가져 와서 div의 다른 집합에 다른면에 나타나는 순서대로 추가하는 방법은 무엇입니까?

나는 eq 또는 무언가를 사용할 수 있고 각각을 통과 할 수는 있지만 주어진 시간에 divs의 수가 점점 더 많아 질 수 있기 때문에 이상적이지 않다. 다시 돌아가서 js를 조정해야한다. div 수만큼.

이 예제에서 아직 수행하지 않은 js는이 접근 방법을 모르기 때문입니다.

도움을 주시면 감사하겠습니다. 내가 .eq를 사용하여 생각

Fiddle Example

감사

답변

1

은 유일한 선택이지만, 유연성 코드하지 않습니다

var $divs = $('.wrap-two div.item'); 

$('.wrap h2').each(function(index) { 
    $divs.eq(index).text($(this).text()); 
}); 

// or alternatively: 

var $h2s = $('.wrap h2'); 

$('.wrap-two div.item').text(function(index) { 
    return $h2s.eq(index).text(); 
}); 

DEMO

추가 div의 단지가 될 것이다 비어 있고 너무 적은 숫자의 div은 유용하지 않습니다. m 중 하나. .eq은 해당 색인이있는 요소가 없더라도 항상 jQuery 객체를 반환합니다. 그러면 .text에 대한 호출이 자동으로 무시됩니다.

또는 항상 divh2으로 지정 하시겠습니까?

+0

을 나는거야 항상 h2만큼 많은 div를 가지고 있습니다. 나는 이것을 확신했습니다. 귀하의 첫 번째 반복하지만 완벽하게 내 상황과 내가 뭘하고 싶었을 달성했습니다. 고맙습니다. – Koder

0

확인이 바이올린 .. http://jsfiddle.net/u2VY5/3/

$(function(){ 
    $('#btn1').on('click' , function(){ 
     var data = $('.wrap div h2'); 
     var target = $('.wrap-two div'); 

     $.each(data, function(i){ 
      $(target[i]).append('h2').text($(this).text()); 
     }); 

    }); 
});​ 
+1

'.text'로 즉시 덮어 쓰는 경우 새로운'h2'를 추가 할 필요가 없습니다. '$ (target [i]). text ($ (this) .text());는 똑같은 결과를 만들어 낸다. –

+0

그게 .. 완전히 그것을 놓친 .. 그것을 지적 주셔서 감사합니다 .. –

관련 문제