2016-10-05 13 views
-1

このコードは簡略化できますか?変数を抽象化してif elseやswitchを使用すると、それぞれの場合が要素IDになると私は確信しています...これを処理するのは難しい作業です。このコードを簡略化しようとしています

 function NoTime() { 
      if (shortTime == "") { 
       timeFormat = "N/A" 
      } 
     } 

     var shortTime; 
     var day; 
     var month; 
     var year; 

     var revisionDate = document.getElementById("RevisionDate").value; 
     shortTime = revisionDate; 
     day = revisionDate.substring(8, 10); 
     month = revisionDate.substring(4, 7); 
     year = revisionDate.substring(11, 15); 
     var timeFormat = day + " " + month + " " + year; 
     NoTime(); 
     $("#RevisionDate") 
      .replaceWith("<div id='RevisionDate' class='col-md-12 margin-bottom-10px pad-L-15px border-1px width-174px pad-LR-3px width-227px' /></div>"); 
     $("#RevisionDate").html(timeFormat); 

     var supplierPartInformationEffectiveDate = document.getElementById("SupplierPartInformationEffectiveDate") 
      .value; 
     shortTime = supplierPartInformationEffectiveDate; 
     day = supplierPartInformationEffectiveDate.substring(8, 10); 
     month = supplierPartInformationEffectiveDate.substring(4, 7); 
     year = supplierPartInformationEffectiveDate.substring(11, 15); 
     var timeFormat = day + " " + month + " " + year; 
     NoTime(); 
     $("#SupplierPartInformationEffectiveDate") 
      .replaceWith("<div id='SupplierPartInformationEffectiveDate' class='col-md-12 margin-bottom-10px pad-LR-3px border-1px pad-LR-3px width-342px' /></div>"); 
     $("#SupplierPartInformationEffectiveDate").html(timeFormat); 

     var SupplierPartInformationExpirationDate = document.getElementById("SupplierPartInformationExpirationDate") 
      .value; 
     shortTime = SupplierPartInformationExpirationDate; 
     day = SupplierPartInformationExpirationDate.substring(8, 10); 
     month = SupplierPartInformationExpirationDate.substring(4, 7); 
     year = SupplierPartInformationExpirationDate.substring(11, 15); 
     var timeFormat = day + " " + month + " " + year; 
     NoTime(); 
     $("#SupplierPartInformationExpirationDate") 
      .replaceWith("<div id='SupplierPartInformationExpirationDate' class='col-md-12 margin-bottom-10px pad-LR-3px border-1px pad-LR-3px width-342px' /></div>"); 
     $("#SupplierPartInformationExpirationDate").html(timeFormat); 
+0

それはおそらく多くの時間と日付を扱うためのmomentjsを使用することによって単純化することができます。 –

+0

簡略化、わかりません。しかし、Dateを処理するために 'Date'オブジェクトを使用することが優先事項です。サブストリング日付は醜いです –

+0

http://codereview.stackexchange.com/ – j08691

答えて

0
 var idArray = [ RevisionDate, SupplierPartInformationEffectiveDate, SupplierPartInformationExpirationDate ]; 
     var attrIDArray = ["RevisionDate", "SupplierPartInformationEffectiveDate", "SupplierPartInformationExpirationDate"]; 
     var stringIDArray = ["#RevisionDate", "#SupplierPartInformationEffectiveDate", "#SupplierPartInformationExpirationDate"]; 

     for (i = 0; i < idArray.length; i++) { 
      var value = document.getElementById(attrIDArray[i]).value; 

      var day = value.substring(8, 10); 
      var month = value.substring(4, 7); 
      var year = value.substring(11, 15); 

      var timeFormat = day + " " + month + " " + year; 

      if (value == "") { 
       timeFormat = "N/A"; 
      } 

      $(stringIDArray[i]).replaceWith("<div id='" + attrIDArray[i] + "' class='col-md-12 margin-bottom-10px pad-L-15px border-1px pad-LR-3px pad-TB-2px darkgrey-border-1px' /></div>"); 

      if (stringIDArray[i] === "#RevisionDate") { 
       $("#RevisionDate").css("width", "227px"); 
      } else { 
       $("#SupplierPartInformationEffectiveDate").css("width", "342px"); 
       $("#SupplierPartInformationExpirationDate").css("width", "342px"); 
      } 

      $(stringIDArray[i]).html(timeFormat); 
     } 
+0

これは私が進めてきたことですが、明らかに自分のリファクタリングスキルを誤って判断しました。 – Brownbagger11

関連する問題