2012-02-03 24 views
2

私はJavaScriptを学んでいるだけで、自分自身が以下のコードを書いて、FORまたはWHILEステートメントを使って所望の出力を得るための方法でなければならないと思っていました。基本的なFORループより少し複雑です(少なくとも私にとって)。私が始める手助けをしてもらえますか?JavaScript - ちょうど学習のため

質問:FORを使用している場合XMLノードのカウントを取得すると、いつ停止する必要があるのか​​分かりますか?

FORまたはWHILEを使用する必要がある場合は、AJAXにこの方法を実行する手段がありますか?

追加情報:実際のソースは、OA40 +およびVS50 +よりも大きく、変更される可能性がありますので、XMLファイルから取得すると、XMLファイルの変更に伴う多くのコード作業が省かれます。 http://mdihosting.com/5/Projects/VRACC/xml/categories.xml

function onchange1(catname) { 
    //alert(catname); 
    $("#oatable tbody tr").empty(); 
    $("#epcftable tbody tr").empty(); 
    $.ajax({ 
     type: "GET", 
     url: "xml/categories.xml", 
     dataType: "xml", 
     success: function (xml) { 
     var div = $('#epcf-wrap'); 
     div.empty(); 
     var findval = "Cat" 
     $(xml).find('Cat').each(function() { 
      var cval = $(this).attr('name'); 
      if (catname === cval) { 
       // I bet there is an easier way to do this 
       var xmlArr = []; 
       var xml_EPCF_1_1 = $(this).find('EPCF_1_1').text(); 
       var xml_EPCF_1_2 = $(this).find('EPCF_1_2').text(); 
       var xml_EPCF_1_3 = $(this).find('EPCF_1_3').text(); 
       var xml_EPCF_1_4 = $(this).find('EPCF_1_4').text(); 
       var xml_EPCF_1_5 = $(this).find('EPCF_1_5').text(); 
       var xml_EPCF_1_6 = $(this).find('EPCF_1_6').text(); 
       var xml_EPCF_2_1 = $(this).find('EPCF_2_1').text(); 
       var xml_EPCF_2_2 = $(this).find('EPCF_2_2').text(); 
       var xml_EPCF_2_3 = $(this).find('EPCF_2_3').text(); 
       var xml_EPCF_2_4 = $(this).find('EPCF_2_4').text(); 
       var xml_EPCF_2_5 = $(this).find('EPCF_2_5').text(); 
       var xml_EPCF_3_1 = $(this).find('EPCF_3_1').text(); 
       var xml_EPCF_3_2 = $(this).find('EPCF_3_2').text(); 
       var xml_EPCF_3_3 = $(this).find('EPCF_3_3').text(); 
       var xml_EPCF_3_4 = $(this).find('EPCF_3_4').text(); 
       var xml_EPCF_4_1 = $(this).find('EPCF_4_1').text(); 
       var xml_EPCF_4_2 = $(this).find('EPCF_4_2').text(); 
       var xml_EPCF_4_3 = $(this).find('EPCF_4_3').text(); 
       var xml_EPCF_4_4 = $(this).find('EPCF_4_4').text(); 
       var xml_EPCF_4_5 = $(this).find('EPCF_4_5').text(); 
       var xml_EPCF_4_6 = $(this).find('EPCF_4_6').text(); 
       var xml_EPCF_5_1 = $(this).find('EPCF_5_1').text(); 
       var xml_EPCF_5_2 = $(this).find('EPCF_5_2').text(); 
       var xml_EPCF_5_3 = $(this).find('EPCF_5_3').text(); 
       var xml_EPCF_5_4 = $(this).find('EPCF_5_4').text(); 
       var xml_EPCF_5_5 = $(this).find('EPCF_5_5').text(); 
       var xml_EPCF_5_6 = $(this).find('EPCF_5_6').text(); 
       var xml_EPCF_5_7 = $(this).find('EPCF_5_7').text(); 
       var xml_EPCF_5_8 = $(this).find('EPCF_5_8').text(); 
       var xml_EPCF_6_1 = $(this).find('EPCF_6_1').text(); 
       var xml_EPCF_6_2 = $(this).find('EPCF_6_2').text(); 
       var xml_EPCF_6_3 = $(this).find('EPCF_6_3').text(); 
       var xml_EPCF_6_4 = $(this).find('EPCF_6_4').text(); 
       var xml_EPCF_6_5 = $(this).find('EPCF_6_5').text(); 
       var xml_EPCF_6_6 = $(this).find('EPCF_6_6').text(); 
       var xml_EPCF_6_7 = $(this).find('EPCF_6_7').text(); 
       var xml_EPCF_6_8 = $(this).find('EPCF_6_8').text(); 
       var xml_OA1 = $(this).find('OA1').text(); 
       var xml_OA2 = $(this).find('OA2').text(); 
       var xml_OA3 = $(this).find('OA3').text(); 
       var xml_OA4 = $(this).find('OA4').text(); 
       var xml_OA5 = $(this).find('OA5').text(); 
       var xml_OA6 = $(this).find('OA6').text(); 
       var xml_OA7 = $(this).find('OA7').text(); 
       var xml_OA8 = $(this).find('OA8').text(); 
       var xml_OA9 = $(this).find('OA9').text(); 
       var xml_OA10 = $(this).find('OA10').text(); 
       var xml_VS1 = $(this).find('VS1').text(); 
       var xml_VS2 = $(this).find('VS2').text(); 
       var xml_VS3 = $(this).find('VS3').text(); 
       var xml_VS4 = $(this).find('VS4').text(); 
       var xml_VS5 = $(this).find('VS5').text(); 

       //begin name attr 
       var xml_EPCF_1_1_name = $(this).find('EPCF_1_1').attr('name'); 
       var xml_EPCF_1_2_name = $(this).find('EPCF_1_2').attr('name'); 
       var xml_EPCF_1_3_name = $(this).find('EPCF_1_3').attr('name'); 
       var xml_EPCF_1_4_name = $(this).find('EPCF_1_4').attr('name'); 
       var xml_EPCF_1_5_name = $(this).find('EPCF_1_5').attr('name'); 
       var xml_EPCF_1_6_name = $(this).find('EPCF_1_6').attr('name'); 
       var xml_EPCF_2_1_name = $(this).find('EPCF_2_1').attr('name'); 
       var xml_EPCF_2_2_name = $(this).find('EPCF_2_2').attr('name'); 
       var xml_EPCF_2_3_name = $(this).find('EPCF_2_3').attr('name'); 
       var xml_EPCF_2_4_name = $(this).find('EPCF_2_4').attr('name'); 
       var xml_EPCF_2_5_name = $(this).find('EPCF_2_5').attr('name'); 
       var xml_EPCF_3_1_name = $(this).find('EPCF_3_1').attr('name'); 
       var xml_EPCF_3_2_name = $(this).find('EPCF_3_2').attr('name'); 
       var xml_EPCF_3_3_name = $(this).find('EPCF_3_3').attr('name'); 
       var xml_EPCF_3_4_name = $(this).find('EPCF_3_4').attr('name'); 
       var xml_EPCF_4_1_name = $(this).find('EPCF_4_1').attr('name'); 
       var xml_EPCF_4_2_name = $(this).find('EPCF_4_2').attr('name'); 
       var xml_EPCF_4_3_name = $(this).find('EPCF_4_3').attr('name'); 
       var xml_EPCF_4_4_name = $(this).find('EPCF_4_4').attr('name'); 
       var xml_EPCF_4_5_name = $(this).find('EPCF_4_5').attr('name'); 
       var xml_EPCF_4_6_name = $(this).find('EPCF_4_6').attr('name'); 
       var xml_EPCF_5_1_name = $(this).find('EPCF_5_1').attr('name'); 
       var xml_EPCF_5_2_name = $(this).find('EPCF_5_2').attr('name'); 
       var xml_EPCF_5_3_name = $(this).find('EPCF_5_3').attr('name'); 
       var xml_EPCF_5_4_name = $(this).find('EPCF_5_4').attr('name'); 
       var xml_EPCF_5_5_name = $(this).find('EPCF_5_5').attr('name'); 
       var xml_EPCF_5_6_name = $(this).find('EPCF_5_6').attr('name'); 
       var xml_EPCF_5_7_name = $(this).find('EPCF_5_7').attr('name'); 
       var xml_EPCF_5_8_name = $(this).find('EPCF_5_8').attr('name'); 
       var xml_EPCF_6_1_name = $(this).find('EPCF_6_1').attr('name'); 
       var xml_EPCF_6_2_name = $(this).find('EPCF_6_2').attr('name'); 
       var xml_EPCF_6_3_name = $(this).find('EPCF_6_3').attr('name'); 
       var xml_EPCF_6_4_name = $(this).find('EPCF_6_4').attr('name'); 
       var xml_EPCF_6_5_name = $(this).find('EPCF_6_5').attr('name'); 
       var xml_EPCF_6_6_name = $(this).find('EPCF_6_6').attr('name'); 
       var xml_EPCF_6_7_name = $(this).find('EPCF_6_7').attr('name'); 
       var xml_EPCF_6_8_name = $(this).find('EPCF_6_8').attr('name'); 
       var xml_OA1_name = $(this).find('OA1').attr('name'); 
       var xml_OA2_name = $(this).find('OA2').attr('name'); 
       var xml_OA3_name = $(this).find('OA3').attr('name'); 
       var xml_OA4_name = $(this).find('OA4').attr('name'); 
       var xml_OA5_name = $(this).find('OA5').attr('name'); 
       var xml_OA6_name = $(this).find('OA6').attr('name'); 
       var xml_OA7_name = $(this).find('OA7').attr('name'); 
       var xml_OA8_name = $(this).find('OA8').attr('name'); 
       var xml_OA9_name = $(this).find('OA9').attr('name'); 
       var xml_OA10_name = $(this).find('OA10').attr('name'); 


       var xml_VS1_name = $(this).find('VS1').attr('name'); 
       var xml_VS2_name = $(this).find('VS2').attr('name'); 
       var xml_VS3_name = $(this).find('VS3').attr('name'); 
       var xml_VS4_name = $(this).find('VS4').attr('name'); 
       var xml_VS5_name = $(this).find('VS5').attr('name'); 

       //begin id attr 
       var xml_EPCF_1_1_id = $(this).find('EPCF_1_1').attr('id'); 
       var xml_EPCF_1_2_id = $(this).find('EPCF_1_2').attr('id'); 
       var xml_EPCF_1_3_id = $(this).find('EPCF_1_3').attr('id'); 
       var xml_EPCF_1_4_id = $(this).find('EPCF_1_4').attr('id'); 
       var xml_EPCF_1_5_id = $(this).find('EPCF_1_5').attr('id'); 
       var xml_EPCF_1_6_id = $(this).find('EPCF_1_6').attr('id'); 
       var xml_EPCF_2_1_id = $(this).find('EPCF_2_1').attr('id'); 
       var xml_EPCF_2_2_id = $(this).find('EPCF_2_2').attr('id'); 
       var xml_EPCF_2_3_id = $(this).find('EPCF_2_3').attr('id'); 
       var xml_EPCF_2_4_id = $(this).find('EPCF_2_4').attr('id'); 
       var xml_EPCF_2_5_id = $(this).find('EPCF_2_5').attr('id'); 
       var xml_EPCF_3_1_id = $(this).find('EPCF_3_1').attr('id'); 
       var xml_EPCF_3_2_id = $(this).find('EPCF_3_2').attr('id'); 
       var xml_EPCF_3_3_id = $(this).find('EPCF_3_3').attr('id'); 
       var xml_EPCF_3_4_id = $(this).find('EPCF_3_4').attr('id'); 
       var xml_EPCF_4_1_id = $(this).find('EPCF_4_1').attr('id'); 
       var xml_EPCF_4_2_id = $(this).find('EPCF_4_2').attr('id'); 
       var xml_EPCF_4_3_id = $(this).find('EPCF_4_3').attr('id'); 
       var xml_EPCF_4_4_id = $(this).find('EPCF_4_4').attr('id'); 
       var xml_EPCF_4_5_id = $(this).find('EPCF_4_5').attr('id'); 
       var xml_EPCF_4_6_id = $(this).find('EPCF_4_6').attr('id'); 
       var xml_EPCF_5_1_id = $(this).find('EPCF_5_1').attr('id'); 
       var xml_EPCF_5_2_id = $(this).find('EPCF_5_2').attr('id'); 
       var xml_EPCF_5_3_id = $(this).find('EPCF_5_3').attr('id'); 
       var xml_EPCF_5_4_id = $(this).find('EPCF_5_4').attr('id'); 
       var xml_EPCF_5_5_id = $(this).find('EPCF_5_5').attr('id'); 
       var xml_EPCF_5_6_id = $(this).find('EPCF_5_6').attr('id'); 
       var xml_EPCF_5_7_id = $(this).find('EPCF_5_7').attr('id'); 
       var xml_EPCF_5_8_id = $(this).find('EPCF_5_8').attr('id'); 
       var xml_EPCF_6_1_id = $(this).find('EPCF_6_1').attr('id'); 
       var xml_EPCF_6_2_id = $(this).find('EPCF_6_2').attr('id'); 
       var xml_EPCF_6_3_id = $(this).find('EPCF_6_3').attr('id'); 
       var xml_EPCF_6_4_id = $(this).find('EPCF_6_4').attr('id'); 
       var xml_EPCF_6_5_id = $(this).find('EPCF_6_5').attr('id'); 
       var xml_EPCF_6_6_id = $(this).find('EPCF_6_6').attr('id'); 
       var xml_EPCF_6_7_id = $(this).find('EPCF_6_7').attr('id'); 
       var xml_EPCF_6_8_id = $(this).find('EPCF_6_8').attr('id'); 
       var xml_OA1_id = $(this).find('OA1').attr('id'); 
       var xml_OA2_id = $(this).find('OA2').attr('id'); 
       var xml_OA3_id = $(this).find('OA3').attr('id'); 
       var xml_OA4_id = $(this).find('OA4').attr('id'); 
       var xml_OA5_id = $(this).find('OA5').attr('id'); 
       var xml_OA6_id = $(this).find('OA6').attr('id'); 
       var xml_OA7_id = $(this).find('OA7').attr('id'); 
       var xml_OA8_id = $(this).find('OA8').attr('id'); 
       var xml_OA9_id = $(this).find('OA9').attr('id'); 
       var xml_OA10_id = $(this).find('OA10').attr('id'); 
       var xml_VS1_id = $(this).find('VS1').attr('id'); 
       var xml_VS2_id = $(this).find('VS2').attr('id'); 
       var xml_VS3_id = $(this).find('VS3').attr('id'); 
       var xml_VS4_id = $(this).find('VS4').attr('id'); 
       var xml_VS5_id = $(this).find('VS5').attr('id'); 

       //In this installment of FML, we're going to build an Array 
       xmlArr += "<table id='opttable' align='left'><tr><td>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_1_1_id + "' name='" + xml_EPCF_1_1_id + "' /><label for='epcf11'>" + xml_EPCF_1_1_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_1_2_id + "' name='" + xml_EPCF_1_2_id + "' /><label for='epcf12'>" + xml_EPCF_1_2_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_1_3_id + "' name='" + xml_EPCF_1_3_id + "' /><label for='epcf13'>" + xml_EPCF_1_3_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_1_4_id + "' name='" + xml_EPCF_1_4_id + "' /><label for='epcf14'>" + xml_EPCF_1_4_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_1_5_id + "' name='" + xml_EPCF_1_5_id + "' /><label for='epcf15'>" + xml_EPCF_1_5_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_1_6_id + "' name='" + xml_EPCF_1_6_id + "' /><label for='epcf15'>" + xml_EPCF_1_6_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_2_1_id + "' name='" + xml_EPCF_2_1_id + "' /><label for='epcf11'>" + xml_EPCF_2_1_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_2_2_id + "' name='" + xml_EPCF_2_2_id + "' /><label for='epcf12'>" + xml_EPCF_2_2_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_2_3_id + "' name='" + xml_EPCF_2_3_id + "' /><label for='epcf13'>" + xml_EPCF_2_3_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_2_4_id + "' name='" + xml_EPCF_2_4_id + "' /><label for='epcf14'>" + xml_EPCF_2_4_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_2_5_id + "' name='" + xml_EPCF_2_5_id + "' /><label for='epcf15'>" + xml_EPCF_2_5_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_3_1_id + "' name='" + xml_EPCF_3_1_id + "' /><label for='epcf11'>" + xml_EPCF_3_1_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_3_2_id + "' name='" + xml_EPCF_3_2_id + "' /><label for='epcf12'>" + xml_EPCF_3_2_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_3_3_id + "' name='" + xml_EPCF_3_3_id + "' /><label for='epcf13'>" + xml_EPCF_3_3_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_3_4_id + "' name='" + xml_EPCF_3_4_id + "' /><label for='epcf14'>" + xml_EPCF_3_4_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_4_1_id + "' name='" + xml_EPCF_4_1_id + "' /><label for='epcf11'>" + xml_EPCF_4_1_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_4_2_id + "' name='" + xml_EPCF_4_2_id + "' /><label for='epcf12'>" + xml_EPCF_4_2_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_4_3_id + "' name='" + xml_EPCF_4_3_id + "' /><label for='epcf13'>" + xml_EPCF_4_3_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_4_4_id + "' name='" + xml_EPCF_4_4_id + "' /><label for='epcf14'>" + xml_EPCF_4_4_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_4_5_id + "' name='" + xml_EPCF_4_5_id + "' /><label for='epcf15'>" + xml_EPCF_4_5_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_4_6_id + "' name='" + xml_EPCF_4_6_id + "' /><label for='epcf15'>" + xml_EPCF_4_6_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_5_1_id + "' name='" + xml_EPCF_5_1_id + "' /><label for='epcf11'>" + xml_EPCF_5_1_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_5_2_id + "' name='" + xml_EPCF_5_2_id + "' /><label for='epcf12'>" + xml_EPCF_5_2_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_5_3_id + "' name='" + xml_EPCF_5_3_id + "' /><label for='epcf13'>" + xml_EPCF_5_3_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_5_4_id + "' name='" + xml_EPCF_5_4_id + "' /><label for='epcf14'>" + xml_EPCF_5_4_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_5_5_id + "' name='" + xml_EPCF_5_5_id + "' /><label for='epcf15'>" + xml_EPCF_5_5_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_5_6_id + "' name='" + xml_EPCF_5_6_id + "' /><label for='epcf15'>" + xml_EPCF_5_6_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_5_7_id + "' name='" + xml_EPCF_5_7_id + "' /><label for='epcf15'>" + xml_EPCF_5_7_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_5_8_id + "' name='" + xml_EPCF_5_8_id + "' /><label for='epcf15'>" + xml_EPCF_5_8_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_6_1_id + "' name='" + xml_EPCF_6_1_id + "' /><label for='epcf11'>" + xml_EPCF_6_1_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_6_2_id + "' name='" + xml_EPCF_6_2_id + "' /><label for='epcf12'>" + xml_EPCF_6_2_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_6_3_id + "' name='" + xml_EPCF_6_3_id + "' /><label for='epcf13'>" + xml_EPCF_6_3_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_6_4_id + "' name='" + xml_EPCF_6_4_id + "' /><label for='epcf14'>" + xml_EPCF_6_4_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_6_5_id + "' name='" + xml_EPCF_6_5_id + "' /><label for='epcf15'>" + xml_EPCF_6_5_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_6_6_id + "' name='" + xml_EPCF_6_6_id + "' /><label for='epcf15'>" + xml_EPCF_6_6_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_6_7_id + "' name='" + xml_EPCF_6_7_id + "' /><label for='epcf15'>" + xml_EPCF_6_7_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_EPCF_6_8_id + "' name='" + xml_EPCF_6_8_id + "' /><label for='epcf15'>" + xml_EPCF_6_8_name + "</label><br/>"; 
       xmlArr += "</td><td>"; 
       //Build OA 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_OA1_id + "' name='" + xml_OA1_id + "' /><label for='oa1'>" + xml_OA1_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_OA2_id + "' name='" + xml_OA2_id + "' /><label for='oa2'>" + xml_OA2_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_OA3_id + "' name='" + xml_OA3_id + "' /><label for='oa3'>" + xml_OA3_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_OA4_id + "' name='" + xml_OA4_id + "' /><label for='oa4'>" + xml_OA4_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_OA5_id + "' name='" + xml_OA5_id + "' /><label for='oa5'>" + xml_OA5_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_OA6_id + "' name='" + xml_OA6_id + "' /><label for='oa6'>" + xml_OA6_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_OA7_id + "' name='" + xml_OA7_id + "' /><label for='oa7'>" + xml_OA7_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_OA8_id + "' name='" + xml_OA8_id + "' /><label for='oa8'>" + xml_OA8_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_OA9_id + "' name='" + xml_OA9_id + "' /><label for='oa9'>" + xml_OA9_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_OA10_id + "' name='" + xml_OA10_id + "' /><label for='oa10'>" + xml_OA10_name + "</label><br/>"; 
       xmlArr += "</td><td>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_VS1_id + "' name='" + xml_VS1_id + "' /><label for='vs1'>" + xml_VS1_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_VS2_id + "' name='" + xml_VS2_id + "' /><label for='vs2'>" + xml_VS2_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_VS3_id + "' name='" + xml_VS3_id + "' /><label for='vs3'>" + xml_VS3_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_VS4_id + "' name='" + xml_VS4_id + "' /><label for='vs4'>" + xml_VS4_name + "</label><br/>"; 
       xmlArr += "<input class='checkbox' type='checkbox' id='" + xml_VS5_id + "' name='" + xml_VS5_id + "' /><label for='vs5'>" + xml_VS5_name + "</label><br/>"; 
       xmlArr += "</td></tr></table>"; 
       div.append(xmlArr); 
       $(":input[type='checkbox']").wijcheckbox(); 
      } 

     }); 

     } 
    }); 
} 
+0

「var xml_OA7」....あなたはハッシュテーブルについて学ぶ必要があります。これは 'var xml = {};でなければなりません。 xml ["OA7"] = .... '。また、キーが常にXPath式と同じ場合は、ループを使用してデータ構造全体を一度に満たすことができます。 – Thilo

+0

@Thilo - 私は現在ハッシュテーブルをグーグルで探しています - あなたはどのように学んだのか覚えていますか?良いリファレンス? – ChadM

+1

ほとんどの場合、このコードの95%を排除できます。私はXMLが一貫した構造を持っていると思います。もしそうなら、これをあなたの利益に利用して、その繰り返しをおそらく数行に置き換えてください。しかし、XMLのサンプルを見ることなく、それを行う方法の例を与えるのはかなり難しいです。 –

答えて

2

こちらはsuccessコールバックです。

catnameが何であるかわからないので、私はif (catname === cval) {を削除しました。特定のカテゴリをフィルタリングしようとしていた場合は、おそらく別の方法があります。

function onchange1(catname) { 
    $("#oatable tbody tr").empty(); 
    $("#epcftable tbody tr").empty(); 
    $.ajax({ 
     type: "GET", 
     url: "xml/categories.xml", 
     dataType: "xml", 
     success: function(xml) { 

      var table = $('<table>', {id: 'opttable',align: 'left'}); 

       // get the Category for the catname passed 
      var category = $(xml).children().children('Cat[name="' + catname + '"]'); 

      var tr = $('<tr>').appendTo(table); // create TR and append to TABLE 
      var td = $('<td>').appendTo(tr); // create TD and append to TR 

       // iterate all children of the current Category 
      category.children().each(function(i, cat_child) { 

        // Grab the name and ID of the current item 
       var id = $(cat_child).attr('id'); 
       var name = $(cat_child).attr('name'); 

        // create INPUT with the attributes of the current 
        // child of Cat, and append to the TD 
       $('<input>', { 
        className: 'checkbox', 
        type: 'checkbox', 
        id: id, 
        name: id 
       }).appendTo(td); 
        // create LABEL with the id attribute of the current 
        // child of Cat and append to TD 
       $('<label>', {for: id, text:name}).appendTo(td); 

       $('<br>').appendTo(td); // create BR element and append to TD 
      }); 
      $('#epcf-wrap').empty().append(table); // Append the table to its container 
     } 
    }); 
} 
+0

あなたは正しいです。引数catnameはonclickから渡され、ドロップダウンリストからオプションとしてCategory Nameを表します。ユーザーがドロップダウンメニュー「カテゴリ1」を選択すると、このコードはXML – ChadM

+0

@ChadMからカテゴリ1に対して実行されます。この場合、 '$(xml).children( 'Cat')'を '$(xml)に変更できます。子供たち( 'Cat [name = "+ catname +"]') '。実際、作成されているのは1つだけなので、実際には最外の '.each()'ループを使わずにそれを実行できます。 –

+0

引用符を忘れた: '$(xml).children( 'Cat [name ="' + catname + '"]')' ... '...そして私の答えを更新しました。 –

1

応答は入力パラメータですので、もしあなたが、JSONでXMLをシリアル化できます - リクエストによって

編集 -update、私はそれをオンラインで提供してきましたので、XMLは、ここに投稿するには大きすぎました成功関数あなたはデータの長さを得ることができます

response.length 

jsonは通常JavaScriptでより扱いやすくなります。 おそらくあなたはxml.length

と同じようにXMLオブジェクトの長さを得ることができますはjqueryののも方法サイズ()http://api.jquery.com/size/

また、あなたは$(この).find( 'EPCF_1_1')$を実行したときに考えてみましょう(this).find( 'EPCF_1_2')など、これらの行をすべて正規表現で見つけることで置き換えることができます。 例

$(this+':regex(attribute_name, EPCF_1_[0-9])') 

または

$('cat_or_element_name:regex(attribute_name, regular_expression)') 

チェックjQuery selector regular expressions

1

ないコードがやろうとしているが、私はおそらく、このようにそれを書くだろうか確認してください。今

/* 
* We use array instead of object because order matters: 
*/ 
var value_ranges = [ 
    [ 
    ['EPCF_1_', 6], 
    ['EPCF_2_', 5], 
    ['EPCF_3_', 4], 
    ['EPCF_4_', 6], 
    ['EPCF_5_', 8], 
    /* I think you know where this is going ... */ 
    ], 
    [ 
    ['0A', 10] 
    ], 
    [ 
    ['VS', 5] 
    ] 
] 

var html_string = ""; 
for (var x=0; x<value_ranges.length; x++) { 
    var inner_ranges = value_ranges[x]; 

    for (var y=0; y<inner_ranges.length; y++) { 
    var key = inner_ranges[y][0]; 
    var range = inner_ranges[y][1]; 

    html_string += '<td>'; 
    for (var z=1; z<=range; z++) { 
     var txt = $(this).find(key+z).text(); 
     var name = $(this).find(key+z).attr('name'); 
     var id = $(this).find(key+z).attr('id'); 

     html_string += "<input class='checkbox' type='checkbox' id='" + id + "' name='" + id + "' /><label for='" + id + "'>" + name + "</label><br/>"; 
    } 
    html_string += '</td>'; 
} 

その配列を維持するだけです。

レイアウト用のテーブルを使用するのは本当にいいとは言えますが、

+0

#を数える方法があればXMLのEPCFとOAとVSを使用して配列を更新することはできますか? – ChadM

関連する問題