2013-04-25 50 views
0

我在slideAC(數據)函數中有問題。如果條件不適用於輸入變量

如果條件似乎在畫面條件的一些問題(數據[0] ==「圖片報」)

我已經盡力提醒數據通過警報測試輸入值(數據[0] );

和結果是「圖片」,以及我不知道是什麼問題?

由於其他測試條件正常工作。


該處在ExtractData由輸入數據(數據< - 陣列)FUCNCTION

slide 
,- width 400 
,- height 300 
,- into #slide1 
,- picture 
,+[pic/001.png] 
,+[pic/002.jpg] 
,+[pic/003.jpg] 
,+[pic/004.jpg] 
, 
(它已經從其它功能通過使用分割( 「\ n」 個)拆分)

代碼的目的是從上述文本中提取單詞並生成一些代碼。

function extractData(data){ 

    alert(data); 
    var n = 0; 
    var step1 = ""; 
    var step2 = ""; 
    var step3 = ""; 
    var step4 = ""; 
    var picture =[]; 
     //check '@' command by call the first line data 
     if(data[0].indexOf("slide") !== -1){ 

      for(var i=1; i<data.length; i++){ 
//    alert(n); 

       switch (n){ 
        case 0://///////////////////////////////////// 
//     alert("case1"); 
        //extract from '-' 
        if(data[i].indexOf('-') !== -1){ 
         step1 = data[i].replace('-',''); 
         step2 = step1.split(' '); 
         step3 = step2.slice(1,step2.length); 
         //slide Attribute Compiler 
         n = slideAC(step3); 

        }else{ 
         alert("out"); 
        }//end of if condition 
        break; 

        case 1://///////////////////////////////////// 
//     alert("case2"); 
        //extract from '+' 
        if(data[i].indexOf('+') !== -1){ 
         step1 = data[i].replace('+',''); 
         step2 = step1.replace("[",""); 
         step3 = step2.replace("]",""); 
         picture.push(step3); 
         alert(step3); 

        }else if(data[i].indexOf('-') !== -1){ 
         step1 = data[i].replace('-',''); 
         step2 = step1.split(' '); 
         step3 = step2.slice(1,step2.length); 
         //slide Attribute Compiler 
         n = slideAC(step3); 
        }else{ 
         //Error 
//      alert("wrong pic syntax"); 
//      javascript_abort(); 
        }//end of if condition 
        break; 

       }//end of iswitch case 

      }//end of item for loop 

     }else if(data[0].indexOf("menu") !== -1){ 
      //Provision 
     }else if(data[0].indexOf("form") !== -1){ 
      //Provision 
     }else{ 
      javascript_abort(); 
     }//end of if condition 


    }//end of syntaxCompiler 


    //slide Attribute Compiler 
    function slideAC(data){ 
// alert(data[0]); 

    var a = 0 

      if(data[0] == "width"){ 
       var propWidth = data[1]; 
//    alert(data[0] + " : " + propWidth); 
//    alert(typeof data); 
       a = 0; 
      }else if(data[0] == "height"){ 
       var propHeight = data[1]; 
//    alert(data[0] + " : " + propHeight); 
//    alert(typeof data); 
       a = 0; 
      }else if(data[0] == "into"){ 
       var propInto = data[1]; 
//    alert(data[0] + " : " + propInto); 
//    alert(typeof data); 
       a = 0; 
      }else if(data[0] == "picture"){ 
       a = 1; 
      }else{ 
       alert("why"); 
//    javascript_abort(); 
      }//end of if condition 

     return a; 

    }//end of slide attribute compiler 

您是否有建議?請幫助

我只是想如果條件正常工作

在此先感謝

PS。對不起如果我的措辭讓你感到困惑。

+0

您在哪條線上遇到問題? – 2013-04-25 17:08:26

回答

2

我猜測可能是字旁邊有空格字符。很難說,因爲你沒有看到分裂結果的良好畫面,或者顯示了原始輸入,以及你如何分裂它。

如果是這種情況,可以修剪它。我用switch聲明而不是你的if/else if/else

// trim the string-------v 
      switch(data[0].trim()) { 
      case "width": 
       var propWidth = data[1]; 
//    alert(data[0] + " : " + propWidth); 
//    alert(typeof data); 
       a = 0; 
       break; 
      case "height": 
       var propHeight = data[1]; 
//    alert(data[0] + " : " + propHeight); 
//    alert(typeof data); 
       a = 0; 
       break; 
      case "into": 
       var propInto = data[1]; 
//    alert(data[0] + " : " + propInto); 
//    alert(typeof data); 
       a = 0; 
       break; 
      case "picture": 
       a = 1; 
       break; 
      default: 
       alert("why"); 
//    javascript_abort(); 
      } 

如果您支持舊瀏覽器,則需要.trim()方法的修補程序。

+0

THANK GOD !!我想知道空間,因爲我試圖測試很多人認爲有沒有空間我不能以任何方式解決它。 這種方法和你的解決方案拯救了我的生命非常感謝^ __^ @ user2320734 – 2013-04-25 16:55:37

+1

@JongzPuangput這裏的問題不是一個額外的空間,它是一個換行字符。 'trim()'也可以去掉這些,所以在這種情況下它真的很有用,但是你應該在你調用split(',')''的地方檢查你的代碼。 – Uby 2013-04-25 16:58:17

+0

謝謝@Uby^__ ^ – 2013-04-25 17:03:38