2014-11-06 78 views
0

好!我有一個問題,你不會在循環結束時運行我的代碼,上面和循環內部工作正常,問題是循環仍然沒有執行代碼。任何想法爲什麼它可以?在函數內不執行代碼

這是我的代碼:

var arrayp = new Array(); 
function botonAdelante(tabl, pasos) 
{ 
    var padreTabla = document.getElementById(tabl).rows; 
    var cont = 0; 

    for(var j = 0; j < padreTabla.length; j++) 
    { 
    var hijoTd = document.getElementById(pasos+ "-producto-" +j); 
    var childArray = hijoTd.children; 
    for(var i = 0; i < childArray.length; i++) 
    { 
     var check = document.getElementById(pasos+ "-CheckBox-" +j); 
     if(check.type == 'checkbox' && check.checked==true) 
     { 
     arrayp[cont] = check.value; 
     var algo = arrayp[cont]; 

     alert(arrayp[cont]); 
     alert(arrayp); 

     cont++; 
     continue; 
     }; 
    } 
    } 
    alert("It is in this part of the code does not work"); 
} 

澄清:「繼續」發現在長結束,如果它不會工作。

+2

繼續的目的是什麼?什麼不執行?警報? – Sergey 2014-11-06 02:10:07

+0

準確地說,不起作用的是警報 – FabricioNahuel 2014-11-06 02:13:19

+0

您有兩個循環。哪一個不工作?另外,你的意思是'break;'而不是'continue';'? – 2014-11-06 02:13:22

回答

0

繼續是這樣使用混淆,但我有一種感覺,你的代碼可能會拋出一個錯誤,因爲連續可能會超過數組長度。不管這是否修復它,我至少會添加一個檢查來確保它不會拋出異常。

請檢查通過web開發工具(Chrome中的F12)拋出的異常。

 for(var i = 0; i < childArray.length; i++) 
     { 
      var check = document.getElementById(pasos+ "-CheckBox-" +j); 
      if(check.type == 'checkbox' && check.checked==true && arrayp.length <= cont) 
      { 
       arrayp[cont] = check.value; 
       var algo = arrayp[cont]; 

       alert(arrayp[cont]); 
       alert(arrayp); 

       cont++; 
       continue; 
      }; 
     } 
+0

Eh在if中添加了條件,但沒有成功。現在開始調試,但不是很好。 – FabricioNahuel 2014-11-06 02:25:53

+0

我認爲問題是這樣的:hijoTd var = document.getElementById(steps +「-products-」+ j);我認爲,你不能創建自動ID增加「j」的變量將 – FabricioNahuel 2014-11-06 05:09:32

+0

你應該檢查dom元素的空值。 – TysonWolker 2014-11-06 05:10:57