2011-06-13 5 views
0

루프 내에서 복제에 관한 질문이 있습니다. 실제로 두 가지 문제가 있습니다. 아래의 코드는 내 주변에서 가장 좋은 방법을 찾고 있습니다.루프 내에서 jquery 복제가 가능합니까?

$.each(data.customers,function(key, value){ 
    $('.customer').find('label').eq(0).text(value.name); 
    $('.customer').eq(0).clone().appendTo('#customers'); 
}); 

data.customers는 json 형식이므로 .length를 사용할 수 없습니다. 내 문제는 jquery 항상 관계없이 #customers 끝에 복제 요소를 추가합니다. json 컬렉션에 다른 요소가 추가 된 경우에만 추가해야합니다. 내가 생각할 수있는 유일한 방법은 배열의 개수를 json으로 돌려 놓고 키가 동등한 지 확인하는 것이다. 루프를 처리 할 때 요소를 복제하는 가장 좋은 방법은 무엇입니까?

누구든지 도움을 줄 수 있습니다.

+0

* "다른"*? 그것은 당신의'data.customers'가 당신이 추가하기를 원하는 것보다 많은 고객을 포함하고 있다는 것을 의미합니까? (또한, 어떻게'데이터가 어떻게 보이는지 보여주십시오) – Tomalak

+0

그 고객의 권리 금액을 가지고 있지만 복제 할 루프에 다른 경우에만 복제하고 싶습니다. 루프가 끝나면 첫 번째 .customer 이름의 클론과 함께 추가 복제 된 고객이됩니다. – Ian

답변

1

이 작업을 수행 할 수 있습니다 :

먼저, 당신의 HTML에 고객을위한 특정 "복제 템플릿"을 만들 CSS (.template {display: none;})를 통해 그 보이지 않는합니다.

그런 다음 루프 :

$.each(data.customers, function (key, value) { 
    var $newCustomer = $('#customers .customer.template').clone(); 

    $newCustomer.removeClass("template").find('label:first').text(value.name); 
    $('#customers').append($newCustomer); 
}); 
+0

실제로 템플릿 클래스가 필요하지 않습니다. 이제는 복제본을 이동하여 변수에 저장해야하므로 코드 어쨌든, 올바른 장소에서 날 가리 켰습 – Ian

+0

사실 내가 고맙다는 코드 작품 않았다 – Ian

관련 문제