2014-01-06 2 views
0

사용자 입력을 기반으로 배열을 분할하는 데 약간의 문제가 있습니다. 나는 사용자가 에세이와 입력 상자를 입력 할 수있는 텍스트 영역을 가지고 있습니다. 입력 상자는 분할의 기초가 될 숫자를 입력 할 수 있습니다. 사용자 입력 "3"이라고 가정하면 전체 에세이는 문단 당 3 개의 문장으로 나뉘어집니다. 나는 지금까지이 HTML을지정된 숫자를 기준으로 배열을 자릅니다.

,

<textarea id="essay"></textarea> 
<input type="text" onkeypress="return show_paragraph(event)" id="input" /> 

<div id="questionDiv"></div> 

하고 모든 작업을 수행 한 기능. 그러나 슬라이스는 첫 번째 단락에서만 작동합니다. 즉, 8 개의 문장으로 구성된 에세이를 입력하고 예를 들어 3 개의 문장으로 잘라내려면 두 개의 단락을 얻습니다. 첫 번째 단락은 3 개의 문장을 가지며 두 번째 단락은 두 번째 단락을 얻습니다. 내가 3 단락, 3-3-2 문장을 가져야 5 개 문장 ..

function show_paragraph(e){ 
    var numSentences = $("#input").val(); 
    var essay= $("#essay").val(); 
    if (e.keyCode == 13 || e.which == 13) { 
     var sentence_list = essay.split(". "); //array of sentences 
     var sentence_results = "";   
     var i,j,paragraph; 
      var chunk = numSentences; 

     for (i=0,j=sentence_list.length; i<j; i+=chunk) { 
      paragraph = sentence_list.slice(i,i+chunk); 
      sentence_results += '<div id="sentenceDiv" >'; 
      sentence_results += '<h4 id="paragraph'+i+'">'+paragraph+'</h4>'; 
      sentence_results += '</div>'; 
     } 

     $("#questionDiv").html(sentence_results); 

     return false; 
    } 
} 

내가 기간을 반환 (.) 다시 각 문장에 대한 수없는 것. 도움을

감사합니다 .. =)

답변

0

매우 흥미 롭군요. 그것은 것, 당신을위한에서

var chunk = parseInt(numSentences, 10); 

그렇지 않으면, 할 때 '+':

대신

var chunk = numSentences; 

할 일의

: 당신의 논리가 올바른지, 당신은 단지이 두 줄을 수정해야 추가하는 대신 연결하십시오.

그리고 대신

:

paragraph = sentence_list.slice(i,i+chunk); 

음주 :

paragraph = sentence_list.slice(i,i+chunk).join(". "); 

그래서 당신은 다시 기간을 얻는다.

테스트 됨, 작동 :).

환호성, 라파즈, 볼리비아

+0

예! 그것은 작동합니다 .. 정말 고마워! =) 필리핀 마닐라에서 건배. – Fox

관련 문제