2012-07-26 3 views
0

나는 대량의 텍스트를 1000 자 블록으로 슬라이스하여 객체에 그룹화하는 스크립트를 작성했습니다. 이제 내가하려는 것은 textarea #PATypes에있는 모든 텍스트를 가져 와서 1000 자 블록으로 슬라이스 한 다음 각 개별 블록을 테이블의 셀에 넣는 것입니다. 불행히도, 나는 곤경에 처해있다. 내가 잘못하고있는 일을 누군가는 알고 있는가?.slice Javascript 함수를 내 HTML에 연결하는 데 문제가 있습니다.

아래에 관련 스 니펫을 작성했습니다. 당신은 모든 일을보고 싶은 경우에, 여기에서 확인 : 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 

자바 스크립트

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]; 
}​ 

답변

0

하나의 문제는 당신이 onloadcutUp 기능을 정의한 것입니다 JsFiddle의 핸들러. 왼쪽의 메뉴에서 랩 없음 옵션을 선택해야합니다.

또 다른 문제는 chunks 배열의 끝에 항상 빈 문자열이 있다는 것입니다. while의 다음 평가 전에 n을 증가시켜 수정할 수 있습니다.

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; 
} 
관련 문제