0

我正在尝试为允许用户在文本框中输入单词或句子然后按下按钮的程序编写代码。

当用户按下按钮时,结果应该出现

实际上,我在最后一部分遇到了一个问题,即拆分句子并将每个句子放在单独的行中。

我所知道的是,我可以通过编写如下代码将它们放在单独的行中:

var myString = "zero one two three four";

var mySplitResult = myString.split(" ");

for(i = 0; i < mySplitResult.length; i++){
    document.write("<br /> Element " + i + " = " + mySplitResult[i]); 
}

但是当我这样做时,它没有用

我的代码

 function t {
    var r=input.split(".");
             for (var i = 0; i < r.length; i++){
        r.innerHTML ="<br/> "  + r[i];}
          } 
4

3 回答 3

0

您的 for 循环正在替换每次迭代的内容。您需要使您的 for 循环仅将 n 的元素附加到结果元素的 innerHTML 中。

function F1()
{  
  var str =document.getElementById("text");
  var input =  str.value;
  var result = document.getElementById( "result" );
  var num =  input.split(" ").length - 1;
  var n=input.split(".");

  result.innerHTML = "Lenrth of input string:  "+ input.length +"<p>Number of spaces:  "+num +"</p>"
  +"<p> Replacing the word 'red' with 'blue':  "+ input.replace("red" , "blue")+"</p><p>Spilting at'.':</p>";

  for (var i = 0; i < n.length; i++){
    result.innerHTML += "<br/> "  + n[i];
  }
}  

这是关于 jsFiddle 的一个工作示例:http: //jsfiddle.net/nQ39D/

于 2013-04-17T23:57:42.620 回答
0

您正在使用 for 循环的每次迭代覆盖您的 result.innerHTML

尝试创建一个 var str 来保存您计算的字符串并在 for 循环中对其进行迭代。

str += "输入字符串的长度:"+ input.length +"

空格数:“+num +”

“+”

将单词 'red' 替换为 'blue': "+ input.replace("red" , "blue")+"

喷在'。':

"+ "
" + n[i];

然后在for循环之外

结果.innerHTML = str

于 2013-04-17T23:52:22.357 回答
0
for (var i = 0; i < n.length; i++) {
    result.innerHTML = "Lenrth of input string:  "+ input.length
      + "<p>Number of spaces:  "+num +"</p>"
      + "<p> Replacing the word 'red' with 'blue':  "+ input.replace("red" , "blue")+"</p>"
      + "<p>Spilting at'.':</p><br/> " + n[i];
}

这样,您将在每个循环回合result.innerHTML分配并覆盖它- 因此您将注意到的输出只是最后一个循环回合的输出。相反,您应该逐部分(包括重复)构建一个 html 字符串,然后分配整个内容。

var html = "<p>Length of input string: " + input.length + "</p>";
html += "<p>Number of spaces: " + num + "</p>";
html += "<p> Replacing the word 'red' with 'blue': " + input.replace("red" , "blue") + "</p>";
html += "<p>Spilting at '.':<ul>";
for (var i = 0; i < n.length; i++) {
    html += "<li>" + n[i] + "</li>";
}
html += "</ul></p>";
result.innerHTML = html;
于 2013-04-17T23:53:06.190 回答