JavaScript - просто учиться для - PullRequest
       0

JavaScript - просто учиться для

2 голосов
/ 03 февраля 2012

Я просто изучаю JavaScript и обнаружил, что пишу код ниже и думаю, что должен быть способ использовать оператор FOR или WHILE для циклического перемещения по ним для получения желаемого результата, но это немного сложнее базовый цикл FOR (по крайней мере, для меня). Не могли бы вы помочь мне начать?

Вопросы: Если я использую FOR, как я получу счетчик узлов XML, чтобы я знал, когда он должен остановиться?

Есть ли в AJAX средство пройти через это без необходимости использовать FOR или WHILE?

Дополнительная информация: Фактический источник НАМНОГО больше через OA40 + и VS50 + и может измениться, поэтому получение его из XML сэкономит МНОГО работы кода при изменении файла 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();
            }

         });

      }
   });
}

Ответы [ 3 ]

2 голосов
/ 03 февраля 2012

Вот мое мнение о success обратном вызове.

Я удалил if (catname === cval) {, потому что я не знаю, что представляет catname.Если вы пытались отфильтровать определенную категорию, то, вероятно, есть другой способ.

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
        }
    });
}
1 голос
/ 03 февраля 2012

Не уверен, что код пытается сделать, но я, вероятно, написал бы это так:

/*
 * 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>';
}

Теперь все, что вам нужно сделать, это сохранить этот массив.

Хотя я должен сказать, что использование таблиц для разметки не очень хорошо.

1 голос
/ 03 февраля 2012

Вы можете сериализовать xml в json, поэтому, если ответ является входным параметром функции успеха, вы можете получить длину данных на

response.length

json обычно более управляем с javascript. Вероятно, вы можете получить длину объекта xml таким же образом с xml.length

Учитывайте также размер метода () jquery http://api.jquery.com/size/

Кроме того, когда вы выполняете $ (this) .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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...