通过Javascript反转HTML段落列表

时间:2013-02-23 18:34:55

标签: javascript dom reverse

我正在使用Javascript(没有jQuery)创建段落列表以获得最佳睡眠时间(基于REM睡眠周期)并在页面上显示here's the code

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()尝试了一个小时,但我无法让它工作,它只是翻转一切,&lt; p>包含标签,打破一切。

2 个答案:

答案 0 :(得分: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 + '...';
}

此情况也应该没问题,但要注意原始数据中的特殊字符(&amp;&lt;&gt; \“”)。通常,您应该转义所有数据,对于html上下文。

答案 1 :(得分:0)

首先:答案是:通过使用中间累加器字符串变量 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;
}

其次:请不要在没有详细描述对方的内容的情况下进行外部链接。外部链接可能会过期,变得无关紧要等等。

第三:你在那里的代码中弄得很乱:)