0

大量のテキストを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];
}​
4

1 に答える 1

0

1つの問題は、jsFiddlecutUpのハンドラーで関数を定義したことです。左側のメニューからラップなしonloadオプションを選択する必要があります。

もう1つの問題は、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));
}

デモ:http: //jsfiddle.net/UFTjJ/

または、割り当ての配置が気に入らない場合は、後で実行してください...

while(n < my_long_string.length) {
    chunks.push(my_long_string.slice(n, n + 1000));
    n += 1000;
}
于 2012-07-26T00:48:02.403 に答える