如何一个接一个地显示数组中的字符串?

时间:2013-11-06 02:47:40

标签: javascript jquery html

我想建立像倒计时一样的东西,但不是倒计时。我实际上是在学习,并且会感谢你指点我的任何方向。

我设法完成了这个工作代码:

function getSelectionHtml() {
    var html = "";
    if (typeof window.getSelection != "undefined") {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var container = document.createElement("div");
            for (var i = 0, len = sel.rangeCount; i < len; ++i) {
                container.appendChild(sel.getRangeAt(i).cloneContents());
            }
            html = container.innerHTML;
        }
    } else if (typeof document.selection != "undefined") {
        if (document.selection.type == "Text") {
            html = document.selection.createRange().htmlText;
        }
    }

    console.log(html);

    // Split every word and separate them by a comma
    var split = html.split(" ");
    console.log(split);
    confirm(split);
}

它的作用是,它获得一个选定/突出显示的数字并将它们呈现给读者。但我实际上想先用突出的数字来做它。

我希望它们能够一个接一个地显示在新的DIV中。假设我突出显示1到10,单击按钮后,Div标签应显示数字1,然后显示数字2,依此类推,直到我达到数字10。

有任何帮助吗?不幸的是我的jsfidle不工作,我不知道为什么。 提前谢谢。

http://jsfiddle.net/X9aPj/

编辑:我想通过添加:

    var array = split;
    console.log(array);

我可以将选择放入数组中。现在我必须弄清楚如何循环它们以在一个单独的新div中一个接一个地显示。

1 个答案:

答案 0 :(得分:0)

您需要在循环中使用setTimeout来输出数组。 Here is an example.

var out = document.getElementById('out');
function outputNext() {
    out.innerHTML = split.pop();
    if (split.length) {
        setTimeout(outputNext, 1000);
    }
}
outputNext();