2014-09-28 38 views
1

這個問題涉及我的一個about split(),並且包括一個關於inserting specific thing if string number is x的回答問題。split()loop:if string number = x,insert <br>

基本上,我有一個大字符串,具體的分隔符是:,我在循環中使用.split()來使用分隔符將字符串的每個部分打印到不同的輸入中。這工作完美。

現在,我想要做的每隔17個輸入(輸入17然後換行,輸入34然後換行,輸入51 ...)之後的breakline。我找到了一種方法在我分享的第二個鏈接中完成,並且分隔線工作。問題是現在只有最後一行輸入被填充字符串部分(字符串的最後7個部分)。所有其他輸入都只是空白。

下面是最終代碼:

function cutTheString() 
     { 
      var str = document.getElementById('textareaString').value; 
      var arrayOfStrings = str.split(':'); 
      for(var i = 0; i < arrayOfStrings.length; i++) 
      { 
       if ((i % 17) == 0) 
       { 
        document.getElementById('result').innerHTML += '<br />'; 
       } 
       var div = document.getElementById('result'); 
       var mi = document.createElement('input'); 
       mi.setAttribute('type', 'text'); 
       mi.setAttribute('size', '4'); 
       mi.setAttribute('id', 'string' + (i+1)); 
       div.appendChild(mi); 
       document.getElementById('string' + (i+1)).value = arrayOfStrings[i]; 

      } 
     } 

有趣的是,在if ((i % 17) == 0),讓我們x更換0。如果x < 17,則只填入x - 17個輸入,從最後一個列表開始填充。如果x > 17,所有的輸入都會被填滿,但破折線顯然不起作用。

控制檯中沒有錯誤,而且我對Javascript的知識使我不明白爲什麼它會這樣做。我很清楚這種相關性,但我想不出任何解決辦法。我嘗試了不同於==的運營商,但沒有成功。

您可以在this JSFiddle上進行測試。謝謝你的幫助!

+0

你把什麼放在CSS?和*爲什麼*? – 2014-09-28 22:56:07

+0

別介意,我忘了刪除它,這就是現在textarea裏面的東西:)我編輯了JSFiddle鏈接。 – Orphal 2014-09-28 22:58:02

回答

1

,而不是使用

mi.setAttribute('value', arrayOfStrings[i]); 

document.getElementById('string' + (i+1)).value = arrayOfStrings[i]; 

(的div.appendChild(mi)之前)。

相關問題