2013-10-29 6 views
0

while 루프에서 자바 스크립트 함수를 사용하는 중 문제가 있습니다. 내 함수는 once.Given 아래 코드 만 실행합니다.자바 스크립트에서 함수를 반환 할 때 문제가 발생했습니다.

함수를 while 루프 내에서 호출했습니다. 함수라고하는 함수는 다른 함수를 호출합니다. while 루프의 끝까지 첫 번째 함수를 실행하려고하지만 한 번만 실행됩니다.

미리 감사드립니다.

while(p<=10) 
    { 
     k=0; 
     l=0; 
     var contExp= mycontents[p].split("#"); 
     var divExp= mydivs[p].split(","); 
     var schtime=contExp[k]; 
      alert(contExp[k]); 
     document.getElementById('gymlocationz').value=contExp[k+1]; 
     document.getElementById('fitness').value=contExp[k+2]; 
     document.getElementById('duration').value="1 hour"; 
     alert(p); 
     return select_visibility(divExp[l],divExp[l+1],divExp[l+2],contExp[k],mycontents[p]); 
     //l=l+3; 
     p++; 
    } 

function select_visibility(str,str1,timeid,time,cont) 
{ 
    var contExp= cont.split("#"); 
    var e = document.getElementById(str); 
    var esub=document.getElementById(str+'sub'); 
    var fulldv=str+'sub'; 
    var result = timeid.match(/([0-9]+)/g); 
    $('#'+str1).addClass('act'); 
    $('#'+str+'sub').addClass('act'); 
    document.getElementById(timeid).value=time; 
    document.getElementById('fitness'+result).value=document.getElementById('fitness').value; 
    document.getElementById('gymlocat'+result).value=document.getElementById('gymlocationz').value; 
    document.getElementById('selectdrpact'+result).value=contExp[3]; 
    document.getElementById('repeat'+result).value=contExp[4]; 
    var s=document.getElementById('fitness'+result).value; 
$("#"+str).css(
{ 
    "background-color":"#95c5ec", 
    "border":"1px solid #ddd", 
    "text-decoration":"none", 
    "padding":"10px 0px", 
    "margin-left":"30px" 
}); 
    $("#"+fulldv).css(
    { 
     "background-color":"#95c5ec", 
     "border":"1px solid #ddd", 
     "text-decoration":"none", 
     "padding":"10px 0px", 
     "margin-left":"41px" 
    }); 
    e.style.display = 'block'; 
    esub.style.display = 'block'; 
    selecteditems(); 
    //return true; 
} 

function selecteditems() 
{ 
    var i=1; 
    var fld = ""; 
    document.getElementById("showselecteditems").innerHTML=""; 
    while(i<=53) 
    { 
    fldOne = document.getElementById('datepicker_value').value; 
    fld = document.getElementById('timedrpact'+i).value; 
    fidpartnum = document.getElementById('selectdrpact'+i).value; 
    fidrepeat = document.getElementById('repeat'+i).value; 

    fit=document.getElementById('fitness'+i).value; 
    if(fit=="Select") 
    { 
     fit="Fitness Not Selected"; 
     } 
    if(fld!="") 
    { 
      //var par='ddwnx'+i; 

      //alert(fit+","+i+","+fld); 
      var ele = document.createElement("div"); 
     ele.setAttribute("id","showselecteditems"+i); 
     ele.setAttribute("class","inner"); 
     ele.innerHTML=fit+"&nbsp;,&nbsp;"+fldOne+"&nbsp;,&nbsp;"+fld+"&nbsp;,&nbsp;"+fidpartnum+"&nbsp;Paticipants, &nbsp;"+fidrepeat+"&nbsp;Repeat"; 
    } 
    i++; 
} 

}

답변

3

당신은 당신의 while 루프 내부의 return 문을 사용하고 있습니다. return 문을 사용하면 함수가 실행을 중지하고 함수라는 코드에 값을 반환합니다. 이에

return select_visibility(divExp[l],divExp[l+1],divExp[l+2],contExp[k], 
    mycontents[p]); 

변경이 : 문제는이 라인의 종료 루프를 포함하는 기능을 일으키지 않고 select_visibility() 함수를 호출

select_visibility(divExp[l],divExp[l+1],divExp[l+2],contExp[k],mycontents[p]); 

.

+0

권자. 작동 중 ... 많이 고맙습니다. – Anoop

+0

문제 없습니다. upvote/accept를 잊지 마세요! –

관련 문제