You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript将textarea中部分文本设置为粗体?

问题分析与解决方案

哦,我明白问题出在哪了!你用的text2.bold()确实会生成带<b>标签的字符串,但<textarea>元素只能显示纯文本,它不会解析HTML标签——所以你看到的只会是Lorem ipsum <b>dolor sit amet</b>, consectetur adipiscing elit.这样的文本,而不是预期的加粗效果。

解决办法:用可编辑元素替代<textarea>

如果你的需求是在页面上直接显示加粗的文本,推荐使用带有contenteditable="true"属性的<div>或<p>标签,这类元素可以解析并渲染HTML内容。

修改后的代码如下:

JavaScript 代码

function myFunction(obj) {
  var text1 = "Lorem ipsum ";
  var text2 = "<strong>dolor sit amet</strong>"; // 直接用strong标签,或者调用text2.bold()也能得到相同结果
  var text3 = ", consectetur adipiscing elit.";
  obj.innerHTML = text1 + text2 + text3; // 用innerHTML而非value来设置HTML内容
}

HTML 代码

<div contenteditable="true" onmouseup="myFunction(this)">
  Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</div>

为什么原来的代码不生效?

  • String.prototype.bold()方法的作用是返回一个包含<b>标签的字符串,比如text2.bold()会得到<b>dolor sit amet</b>;
  • 但<textarea>的value属性只会把传入的内容当作纯文本展示,不会解析任何HTML标记,所以标签会直接显示出来,不会产生加粗效果。

额外说明:如果必须用<textarea>

如果你因为某些限制必须使用<textarea>,那只能通过Markdown语法(比如用**包裹需要加粗的内容)来标记加粗,之后再通过额外的渲染逻辑(比如转换为HTML)在其他地方显示加粗效果,但<textarea>本身还是只能显示纯文本标记。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:10:44