写入到html后换行,通过innerHTML写入页面,textarea行首的换行符丢失

)

var a = " sdf"

function changeLink(){

document.getElementById('myAnchor').innerHTML=a;

}

运行结果是只会换一行,最初以为是innerHTML的缘故,后来才发现这是在HTML 5规范中指定的,html在渲染textarea控件的标准就是如此。

解决方案:手动在前面加一行换行。

参考链接:https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inbody

A start tag whose tag name is "textarea"

Run these steps:

1. Insert an HTML element for the token.

2. If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)

3. Switch the tokenizer to the RCDATA state.

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是用中文的回答: 在 HTML 中,可以使用 JavaScript 的 `replace()` 函数来进行替换。例如,假设要在一个字符串中找到所有的数字,并在每个数字前面添加一个换行符,则可以按照以下方式进行: ```html <!DOCTYPE html> <html> <body> <p id="demo">1234567890</p> <script> var str = document.getElementById("demo").innerHTML; str = str.replace(/\d+/g, "\n$&"); document.getElementById("demo").innerHTML = str; </script> </body> </html> ``` 在上面的代码中,`/\d+/g` 是一个正则表达式,用于匹配所有的数字。`\d+` 表示匹配一个或多个数字,`g` 表示全局匹配。`$&` 表示将匹配到的数字作为替换字符串的一部分。 运行上面的代码后,`<p>` 元素中的内容将变成: ``` 1 2 3 4 5 6 7 8 9 0 ``` 希望这可以帮到你! ### 回答2: 在HTML中,我们可以使用JavaScript中的`replace`方法来匹配数字,并在数字前添加换行符。 具体的做法是,首先获取需要进行替换的HTML代码。然后,我们使用正则表达式来匹配数字。在这里,我们可以使用`\d+`来代表一个或多个数字。然后,我们使用`replace`方法来将匹配到的数字替换为带有换行符的数字。 下面是一个示例代码: ```html <!DOCTYPE html> <html> <head> <script> // 获取需要替换的HTML代码 var htmlCode = document.getElementById("htmlCode").innerHTML; // 使用正则表达式来匹配数字并在数字前添加换行符 var modifiedHtmlCode = htmlCode.replace(/\d+/g, '\n$&'); // 在页面上显示替换后的HTML代码 document.getElementById("modifiedHtmlCode").innerHTML = modifiedHtmlCode; </script> </head> <body> <!-- 需要进行替换的HTML代码 --> <div id="htmlCode"> <p>这是一个有数字的段落,例如123。</p> <p>这是另一个有数字的段落,例如456。</p> </div> <!-- 显示替换后的HTML代码 --> <div id="modifiedHtmlCode"></div> </body> </html> ``` 在上述代码中,我们首先获取了需要替换的HTML代码,并使用正则表达式来匹配数字。然后,我们使用`replace`方法将匹配到的数字替换为带有换行符的数字。最后,我们将替换后的HTML代码显示在页面上。 这样,通过使用`replace`方法和正则表达式,我们就可以在HTML中匹配数字并在数字前添加换行符了。 ### 回答3: 在HTML中,可以使用JavaScript的replace()方法来匹配数字,并在数字前添加换行符。 首先,我们需要在HTML页面中嵌入一段JavaScript代码,可以通过<script>标签来实现。我们给这段代码一个唯一的ID,方便后续使用。例如,我们给这段代码的ID为"jscode",则代码如下: <script id="jscode"> 接下来,我们可以在JavaScript代码中使用replace()方法来匹配数字,并在数字前添加换行符。具体实现如下: var text = "这是一个包含数字的字符串12345"; var replacedText = text.replace(/\d+/g, '\n$&'); 解释一下这段代码,首先我们定义了一个文本变量text,其中包含了一些数字。然后我们使用replace()方法,通过正则表达式/\d+/g匹配所有的数字。正则表达式中的\d表示数字字符,+表示一个或多个,g表示全局匹配。接着我们传入替换的内容,使用'\n$&',其中\n表示换行符,$&表示匹配到的数字本身。 最后,我们可以通过getElementById()方法获取到之前定义的JavaScript代码块的ID,并将替换后的文本赋值给innerHTML属性。具体实现如下: document.getElementById("jscode").innerHTML = "<pre>" + replacedText + "</pre>"; 这样,我们就可以在HTML页面中匹配数字,并在数字前添加换行符了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值