【问题标题】:How to write to the next line in a text box in javascript如何在javascript的文本框中写入下一行
【发布时间】:2011-11-02 17:04:57
【问题描述】:

我的代码使用 SetTimeout 函数写入文本框并显示不同的文本行。但是每次写入时,它都会用新文本替换原始文本。我真正想要的是它继续在新行上书写。我对javascript很陌生,所以我需要一些帮助。到目前为止,这是我的代码:

putftp.onclick = function () {
    var Text = document.getElementById("TextBox");

    function firsttext() {
        Text.innerHTML = "This is the first test.";
        setTimeout(secondtest, 3000);
    }
    function secondtest() {
        Text.innerHTML = "This is the second test.";
        setTimeout(thirdtest, 5000);

我希望输出是

这是第一次测试。

这是第二次测试。

而不是

这是第二次测试。

任何帮助将不胜感激!

【问题讨论】:

    标签: javascript asp.net visual-studio textbox


    【解决方案1】:

    您需要将 innerHTML 的内容连接在一起。目前你只是改变它的价值:

    Text.innerHTML += "<br />This is the second test.";
    

    【讨论】:

    • += 确实会继续代码,非常感谢。但由于某种原因,它会触发“
      ”部分的错误。知道为什么吗?
    • 可能是字符转义问题。什么浏览器正在生成错误消息,错误是什么?您是否在此处看到错误:jsfiddle.net/mXrGG
    • 不,我不是。这更让我困惑!哈哈。我的错误发生在这里 Text.innerHTML += "
      This is the second test.";它是说这是某种运行时错误。老实说,我现在不知道,因为您的代码是正确的。这很有趣,因为当我拿走
      时它工作得很好。
    • 好的新结果。 IE 触发运行时。 Firefox 没有添加新行,也写了
      ,但我需要它在 IE 中运行。我会尝试解决它。​​
    【解决方案2】:

    您正在替换文本,而不是添加到已有的内容。如果要添加行,请将当前 html 与要添加的新 html 连接起来:

    putftp.onclick = function () {
    var Text = document.getElementById("TextBox");
    
    function firsttext() {
        Text.innerHTML =Text.innerHTML+ "This is the first test.";
        setTimeout(secondtest, 3000);
    }
    function secondtest() {
        Text.innerHTML = Text.innerHTML+"This is the second test.";
        setTimeout(thirdtest, 5000);
    

    【讨论】:

      猜你喜欢
      • 2011-11-09
      • 2019-06-14
      • 2013-10-18
      • 2021-04-25
      • 2020-10-03
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多