通过Javascript反转HTML段落列表

通过Javascript反转HTML段落列表,javascript,dom,reverse,Javascript,Dom,Reverse,我正在使用Javascript(无jQuery)创建一个段落列表,以获得最佳睡眠时间(基于REM睡眠周期),并将其显示在页面上 函数sleepnow(){ var结果=“”; var a=新日期(); var hour=a.getHours(); var minutes=a.getMinutes()+14; 如果(分钟>60){ 分钟=分钟-60; 小时=小时+1; } 用于(变量计数器=0;计数器9){ 结果=结果+''+小时; }否则{ 结果=结果+'0'+小时; } 如果(分钟>9){ 结

我正在使用Javascript(无jQuery)创建一个段落列表,以获得最佳睡眠时间(基于REM睡眠周期),并将其显示在页面上

函数sleepnow(){
var结果=“”;
var a=新日期();
var hour=a.getHours();
var minutes=a.getMinutes()+14;
如果(分钟>60){
分钟=分钟-60;
小时=小时+1;
}
用于(变量计数器=0;计数器<6;计数器++){
如果(分钟<30){
分钟=分钟+30;
}否则{
分钟=分钟-30分钟;
小时=小时+1;
}
小时=小时+1;
如果(小时>=24){
如果(小时===24){
小时=0;
}否则,如果(小时===25){
小时=1;
}
}
如果(小时>9){
结果=结果+''+小时;
}否则{
结果=结果+'0'+小时;
}
如果(分钟>9){
结果=结果+':'+分钟+'

'; }否则{ 结果=结果+':0'+分钟+'

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

我怎样才能反转该列表以首先显示较远的列表,依此类推?我用.reverse()尝试了一个小时,但我无法让它工作,它只是翻转了所有内容,包括标记,破坏了所有内容。

我想将数据与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上下文。

首先:答案是:使用一个中间累加器字符串变量currentOne,该变量正常累加,并在结果中按其他顺序累加:result=currentOne+result而不是result=result+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;
}
函数sleepnow(){
var结果=“”;
var a=新日期();
var hour=a.getHours();
var minutes=a.getMinutes()+14;
如果(分钟>60){
分钟=分钟-60;
小时=小时+1;
}
用于(变量计数器=0;计数器<6;计数器++){
var currentOne=“”;
如果(分钟<30){
分钟=分钟+30;
}否则{
分钟=分钟-30分钟;
小时=小时+1;
}
小时=小时+1;
如果(小时>=24){
如果(小时===24){
小时=0;
}否则,如果(小时===25){
小时=1;
}
}
如果(小时>9){
currentOne=currentOne+''+小时;
}否则{
currentOne=currentOne+'0'+小时;
}
如果(分钟>9){
currentOne=currentOne+':'+分钟+'

'; }否则{ currentOne=currentOne+':0'+分钟+'

'; } 结果=当前一个+结果; } document.getElementById('sleepnow').innerHTML=result; }
第二:请不要在没有详细描述对方的情况下进行外部链接。外部链接可能会过期、变得不相关等


第三:你把代码弄得一团糟:)

我完全同意@user1389596。我的回答是,没有改变其他任何东西。我想说的是,Bernardi博士,如果你不遵循用户1389596的建议,你肯定会很快再次陷入麻烦谢谢,公平地说,代码不是100%属于我的,它只是为了使它适合我的需要而修改的,也许我应该试着自己制作,我可以看到它的缺陷,我还不是初学者:)保持你的热情很好。欢迎登机!继续做好工作:)
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;
}