【问题标题】:How do I make text bold after the user clicks a button?用户单击按钮后如何使文本变为粗体?
【发布时间】:2021-06-30 02:58:07
【问题描述】:

我正在尝试用 JavaScript 制作一个文本编辑器,它具有各种功能,例如加粗文本和斜体以及其他一些功能。当用户单击其中任何一个时,他们选择的任何内容都将相应地进行编辑。现在我能够获取选定的文本,甚至在文本之前和之后放置强标签,但是当我这样做时,文本不会变粗,只会看到标签。如何使文本加粗?对不起,我无法提供代码,因为它太多太乱了。感谢阅读查询!另外,如果您知道任何可以帮助我解决此问题的 JavaScript 库,那么您可以向我推荐。

document.getElementById("button").addEventListener("click",
  () => {
    let text = document.getElementById("text").innerText
    let selection = window.getSelection();
    let boldText = "<strong>" + selection + "</strong>"
    document.getElementById("text").innerText = text.replace(selection, boldText)
  })
<div id="text">
  The dog barks and runs around.
</div>
<button id="button">Make selected text bold</button>

我使用内部文本而不是内部 html 来重现问题

【问题讨论】:

  • 请在您的问题中添加您尝试过的任何代码。未显示代码尝试的问题可能会被否决和/或关闭。
  • @dalelandry 好的,我会在一分钟内得到一些代码,对不起,这是我的错
  • @dalelandry done 添加了一些代码

标签: javascript html text


【解决方案1】:

您正在使用innerText 替换错误,因为我们要更改 html,因此请使用 innerHTML。 代码:

document.getElementById("button").addEventListener("click",
  () => {
    let text = document.getElementById("text").innerText
    let selection = window.getSelection();
    let boldText = "<b>" + selection + "</b>"
    document.getElementById("text").innerHTML = text.replace(selection, boldText) //use innerhtml instead of innertext
  })
<div id="text">
  The dog barks and runs around.
</div>
<button id="button">Make selected text bold</button>

【讨论】:

  • 我已经补充说,我有目的地使用它来重现我的代码中的问题,我只使用 innerHTML
【解决方案2】:

这是我用来更改按钮单击时输入文本的一些代码

<input type="text" id="sign" value="">
<p style = "font-family: 'Dancing Script', cursive; font-size:50px;" 
id="signOutput"></p>
<button onclick="signFunction()">Output Signature</button>

<script>

function signFunction() {var x = document.getElementById("sign").value;
         document.getElementById("signOutput").innerHTML = x;
         }

</script>

【讨论】:

  • 嗯,我不认为你得到了正确的问题,因为你做样式的方式对于文本编辑器来说并不理想
  • 是的,我的代码用于使用户输入看起来像草书。我对你的帖子有点困惑,你到底需要做什么。
  • 别担心,我认为问题复杂是我的错。让我给你解释一下。在 html 中,strong 标签用于制作粗体文本。现在,当用户单击粗体按钮使他的文本变为粗体时,我正在选取选定的文本并在其周围添加这些 &lt;strong&gt;&lt;/strong&gt; 标签以使文本变为粗体。但问题是 javascript 只是添加了强文本,并没有真正使文本变为粗体。这就是我必须弄清楚的
猜你喜欢
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多