2014-11-06 48 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