2013-02-23 2 views
0

난 (REM 수면주기를 기준으로) 수면 상태로 전환하고 페이지에 표시 할 수있는 최적의 시간을 얻으려면 Javascript (jQuery 없음)를 사용하여 단락 목록을 만들고, here's the code.자바 스크립트를 통해 HTML 단락 목록을 뒤집습니다.

function sleepnow() { 
    var result = ''; 
    var a = new Date(); 
    var hour = a.getHours(); 

    var minutes = a.getMinutes() + 14; 
    if (minutes > 60) { 
     minutes = minutes - 60; 
     hour = hour + 1; 
    } 

    for (var counter = 0; counter < 6; counter++) { 
     if (minutes < 30) { 
      minutes = minutes + 30; 
     } else { 
      minutes = minutes - 30; 
      hour = hour + 1; 
     } 
     hour = hour + 1; 

     if (hour >= 24) { 
      if (hour === 24) { 
       hour = 0; 
      } else if (hour === 25) { 
       hour = 1; 
      } 
     } 

     if (hour > 9) { 
      result = result + '<p>' + hour; 
     } else { 
      result = result + '<p>0' + hour; 
     } 

     if (minutes > 9) { 
      result = result + ':' + minutes + '</p>'; 
     } else { 
      result = result + ':0' + minutes + '</p>'; 
     } 
    } 
    document.getElementById('sleepnow').innerHTML = result; 
} 

어떻게 그 목록을 뒤집어서 더 멀리 표시 할 수 있습니까? .reverse()로 한 시간 동안 노력했지만 작동하도록 할 수는 없습니다. 모든 것을 뒤집습니다. < p> 태그가 포함되어 모든 것을 무력화 시켰습니다.

답변

0

저는 HTML에서 데이터를 좀 더 분리 할 것입니다. 문자열을 만드는 대신 여러 번 배열하십시오. 그런 다음 html 문자열을 만들 때 역순으로 반복 할 수 있습니다.

1. create data structure, contains only numbers, no html (model) 
2. convert data to html (view) 

var html = ''; 
for (var counter = YOURDATA.length-1; counter >= 0; counter--) { 
    var t = YOURDATA[counter]; 
    html += ' build your string ' + t + '...'; 
} 

또한이 경우 괜찮을하지만, 원시 데이터에 특수 문자에주의해야한다 (& <> \ ""). 일반적으로 HTML 컨텍스트에서 모든 데이터를 이스케이프 처리해야합니다. 모든

+0

내가 100 % user1389596 @ 동의 : 당신이 바로 그 코드에 꽤 혼란을했다. 내 대답은 다른 것 **을 바꾸지 않고 다소 다소 **되었습니다. 내가 drbernardi를 말하려고하는 것은 user1389596의 조언을 따르지 않으면 곧 다시 곤경에 처하게된다는 것입니다. –

0

첫째 해답 : currentOne 일반적 축적 변수 중간 누산기 문자열을 사용하여, 그 결과로, 다른 순서로 축적 기준 : 결과 = currentOne + 대신 결과 결과 = 의 결과 + currentOne. 엔조이 :

function sleepnow() { 
var result = ''; 
var a = new Date(); 
var hour = a.getHours(); 

var minutes = a.getMinutes() + 14; 
if (minutes > 60) { 
    minutes = minutes - 60; 
    hour = hour + 1; 
} 

for (var counter = 0; counter < 6; counter++) { 
var currentOne = ""; 

    if (minutes < 30) { 
     minutes = minutes + 30; 
    } else { 
     minutes = minutes - 30; 
     hour = hour + 1; 
    } 
    hour = hour + 1; 

    if (hour >= 24) { 
     if (hour === 24) { 
      hour = 0; 
     } else if (hour === 25) { 
      hour = 1; 
     } 
    } 

    if (hour > 9) { 
     currentOne = currentOne + '<p>' + hour; 
    } else { 
     currentOne = currentOne + '<p>0' + hour; 
    } 

    if (minutes > 9) { 
     currentOne = currentOne + ':' + minutes + '</p>'; 
    } else { 
     currentOne = currentOne + ':0' + minutes + '</p>'; 
    } 

result = currentOne + result; 
} 
document.getElementById('sleepnow').innerHTML = result; 
} 

둘째 : 상대방의 내용을 철저히 설명하지 말고 외부 링크를 만들지 마십시오. 외부 연결이 만료 등

셋째 관련성이 될 수 있습니다 :

+0

감사합니다. 코드가 100 % 광산이 아니므로, 내 필요에 어울리 며, 스스로 해결하려고 노력해야한다. 나는 그 결함을 볼 수 있으며 나는 초보자가 아니다. :) – drbernardi

+0

열정을 지키는 것이 좋다. 탑승을 환영합니다 ! 그리고 좋은 일을 계속 :) –

관련 문제