2011-10-06 2 views
0

사용자가 프롬프트에 'exit'를 입력 한 후 페이지에 글 머리 기호 목록을 추가하려고합니다. 목록에는 'exit'라는 용어가 포함되어서는 안됩니다. document.write를 사용하여 전체 목록을 가져올 수 있었지만 여기에는 'exit'가 포함되어 있고 내 페이지 서식을 없앴습니다. 나는 innerHTML을 사용할 필요가 있다고 확신하지만,이 작업을 수행 할 때는 배열 항목이없는 페이지가 있습니다. 어떤 도움이라도 대단히 감사합니다.Javascript에서 innerHTML을 사용하는 배열 항목의 정렬되지 않은 목록

<html> 
<head> 
    <img src="http://profperry.com/Classes20/JavaScript/lordoftherings.png" /> 
    <title>Javascript Test</title> 
    <script> 
    function askMe() { 
     var fav_characterList = new Array(); 
     i = 0; 
     var fav_character = ""; 

     while(fav_character != 'exit'){ 

      fav_character = prompt("Who's your favorite Lord of the Rings character\n\n Enter 'exit' to stop prompting", ""); 
      fav_characterList[i] = fav_character; 

      i++; 
     } 

     n = (fav_characterList.length); 
     for(i = 0; i <= (n-1); i++){ 
      var list = fav_characterList[i]; 
      var MyList = getElementById('results'); 
      MyList.innerHTML = "<li>"+list+"</li>"; 


     } 


    } 







    </script> 

</head> 
<body onload="askMe()"> 
    <ul> 

     <div id="results"> 


     </div> 
    </ul> 


     <br/> 
     <br/> 

</body> 

답변

0

document.getElementById()을 사용해야하며 루프 내부에 문자열을 생성해야하고 이전의 li이 작성되지 않도록 루프 뒤에서 내부 HTML을 사용해야합니다.

갱신

n = (fav_characterList.length); 
    var kk=""; 

    for(i = 0; i <= (n-1); i++){ 
     var list = fav_characterList[i]; 
     kk += "<li>"+list+"</li>" 


    } 
var MyList = document.getElementById('results');   
MyList.innerHTML = kk; 

및 HTML처럼 코드 부분이 여기

<ul id="results"> 


     </ul> 

을 상향하는 UL 및 GIV ID 내부의 사업부를 제거하면 전체 코드가 될 수 있습니다 :

<html> 
<head> 
<img src="http://profperry.com/Classes20/JavaScript/lordoftherings.png" /> 
<title>Javascript Test</title> 
<script type="text/javascript"> 
    function askMe() 
{ 
    var fav_characterList = new Array(); 
    i = 0; 
    var fav_character = ""; 

      while(fav_character != 'exit') 
    { 

      fav_character = prompt("Who's your favorite Lord of the Rings character\n\n Enter 'exit' to stop prompting", ""); 
      fav_characterList[i] = fav_character; 
      i++; 
      } 

    n = (fav_characterList.length); 
    var kk=""; 

      for(i = 0; i <= (n-1); i++) 
    { 
      var list = fav_characterList[i]; 
      kk += "<li>"+list+"</li>" 
    } 

    var MyList = document.getElementById('results'); 
    MyList.innerHTML = kk; 

    } 
    </script> 

</head> 
<body onload="askMe()"> 
    <ul id="results"> 
    </ul> 
<br/> 
<br/> 
</body> 
</html> 
+0

정말 고마워요! 그 트릭을 했어 – user981572

+0

kkkk ........ :) – mithunsatheesh

0

당신은 MyList.innerHTML += "<li>"+list+"</li>";

또한 (+= 대신 =의 사용을주의)를 사용해야합니다, 당신의 <ul> HTML이되고 변경 :

...

<ul id="results"> 
</ul> 

...

관련 문제