2009-12-12 5 views
2

jQuery Ajax 요청 (XML로 리턴 됨)의 응답을 통해 반복을 시도하고 있습니다.jQuery XML 응답을 사용하여 html 테이블을 빌드하십시오.

그 응답으로 3 열 (무제한 행 수)의 HTML 표를 작성합니다. 네 번째 XML 노드/"회사"가 발견되면 테이블에서 새로운 행을 시작해야합니다. 새 행을 추가해야하는시기를 결정하는 JS에 대한 도움이 가장 감사합니다. 감사!

JS 예 : 웹 서비스로부터

/* jQuery Ajax Call here */ 

success: function(xml){ 
    var trow = $("<tr>"); 
    $(xml).find("Company").each(function(index){ 
    var cellData = "<td width=\"33%\" valign=\"top\" ><div class=\"container\">"+ 
"<div class=\"item\"><a href=\"#\" title=\"\" target=\"\">"+ $(this).attr("Name")+ "</a></div>"+ 
"<div class=\"description\">"+ $(this).attr("Description") + "</div></div></div></td>"; 
    $(cellData).appendTo(trow); 
     }); 
     trow.appendTo('#tbl'); 
    } 
    }); 

}); 

예 XML 응답 :

<Companies> 
    <Company ID="6" Name="Company name 1" Description="Lorem ipsum" /> 
    <Company ID="22" Name="Company name 2" Description="Lorem ipsum" /> 
    <Company ID="28" Name="Company name 3" Description="Lorem ipsum" /> 
    <Company ID="31" Name="Company name 4" Description="Lorem ipsum" /> 
</Companies> 

답변

3

모듈러스 연산자 이런 일들을 위해 중대하다. 기본적으로 하나의 숫자를 다른 숫자로 나눠서 나머지를 반환합니다. 그래서 1 % 4 = 14 % 4 = 08 % 4 = 0 :

success: function(xml){ 
    var trow = $("<tr>"), table = $("#tbl"); 
    $(xml).find("Company").each(function(index){ 
     var cellData = "<td width=\"33%\" valign=\"top\" ><div class=\"container\">"+ 
         "<div class=\"item\"><a href=\"#\" title=\"\" target=\"\">"+ 
         $(this).attr("Name")+ "</a></div>" + 
         "<div class=\"description\">" + $(this).attr("Description") + 
         "</div></div></div></td>"; 
     $(cellData).appendTo(trow); 
     if((index + 1) % 4 == 0) { 
      trow.appendTo(table); 
      trow = $("<tr>"); 
     } 

     }); 
     if(trow.is(':not(:empty)')) trow.appendTo(table); 
    } 
    }); 
}); 

또한 조회 수를 줄이기 위해 변수에 $("#tbl")을 저장.

+1

이렇게 신속한 답변을 부탁드립니다. 아, 모듈러스 연산자를 훌륭하게 사용합니다. 나는이 솔루션을 몇 시간 동안 마무리했다. 내가 조정 한 유일한 것은 "4 == 0"에서 "3 == 0"으로 4 번째 결과가 새로운 테이블 행을 시작하도록 강제하는 것입니다. 다시 한 번, 당신의 도움에 감사드립니다! –

+0

도와 드리겠습니다! 다행히'4 == 0'이 3 번 이었음을 알았습니다. –

관련 문제