无法将.slice Javascript函数连接到我的HTML

时间:2012-07-26 00:28:16

标签: javascript html html-table slice

我编写了一个脚本,将大量文本切成1000个字符块并将它们分组到一个对象中。现在我要做的是将所有文本放在textarea #PATypes中,将其分成1000个字符块,然后将每个单独的块放入表格中的单元格中。不幸的是,我遇到了麻烦 - 有没有人知道我做错了什么?

我在下面写了相关的片段;如果您想看到整件事,请点击此处: http://jsfiddle.net/ayoformayo/yTcRb/1/

HTML

<label for="PATypes">Mass Text PA</label>
<textarea rows="2" cols="20" id="PATypes"></textarea>
<button onclick = "cutUp()">Submit PA</button> 
<table>
<tr>
<td id="PAType=Name=Value1"></td>
<td id="PAType=Name=Value2"></td>
<td id="PAType=Name=Value3"></td>
<td id="PAType=Name=Value4"></td>
<td id="PAType=Name=Value5"></td>
<td id="PAType=Name=Value6"></td>
</tr>
</table

的Javascript

function cutUp(){
    var chunks = [];
    var my_long_string = document.getElementById('PATypes').value;
    var i = 0;
    var n = 0;
    while(n < my_long_string.length) {
        n = 1000 * i;
        chunks.push(my_long_string.slice(n, n + 1000));
        i++;
    }
    document.getElementById('PAType=Name=Value4').innerHTML = chunks[0];
    document.getElementById('PAType=Name=Value5').innerHTML = chunks[1];
    document.getElementById('PAType=Name=Value6').innerHTML = chunks[2];
}​

1 个答案:

答案 0 :(得分:0)

一个问题是您已在jsFiddle的cutUp处理程序中定义了onload函数。您需要从左侧菜单中选择 no wrap 选项。

另一个问题是你的chunks数组最后总是有一个空字符串。您可以在下一次评估n之前递增while来解决此问题。

var n = 0
,   chunks = [];

while(n < my_long_string.length) { // ----v---increment n
    chunks.push(my_long_string.slice(n, n += 1000));
}

DEMO: http://jsfiddle.net/UFTjJ/

或者,如果您不喜欢作业的放置,请在......之后进行。

while(n < my_long_string.length) {
    chunks.push(my_long_string.slice(n, n + 1000));
    n += 1000;
}