【问题标题】:Replacing text with <span> using javascript使用 javascript 用 <span> 替换文本
【发布时间】:2015-11-20 06:35:09
【问题描述】:

我需要将 textarea 中的每个单词替换为具有唯一 ID 的跨度。我需要 JavaScript 中的代码。我尝试使用以下代码创建一个 DOM 元素并将其插入到文本区域中。

var s = document.createElement('span');
var text=document.createTextNode("inside tag");
s.appendChild(text);                
document.getElementById("t1").appendChild(s);

t1 是我的文本区域的 id。上面的代码没有给出任何结果。

另外,我尝试了另一种方法:

document.getElementById("t1").innerHTML="<span>inside tag</span>";

innerHTML 在这里不起作用。

我该怎么办?

【问题讨论】:

  • document.getElementById("t1").value="&lt;span&gt;inside tag&lt;/span&gt;";
  • 是的。那是我用的。但这也行不通。
  • A &lt;textarea&gt; 通常不允许子元素。只有文本内容(value)。一个例外是如果它被设置为contenteditable
  • @HarshitaLal 然后创建一个最小的示例,这样我们就可以看到你有什么,因为只使用.value 应该可以工作。
  • @RohitAzad:请不要在反引号中添加随机词。它使阅读变得更加困难。

标签: javascript html


【解决方案1】:

它必须是 value 属性而不是 innerHtml 因为 value 属性用于设置输入值/form 元素。另一方面,innerHTML 通常用于 div、span、td 和类似元素。

因此,当您使用 textarea 时,您应该使用 value 属性。

document.getElementById("t1").value = "Whatever the text/html you want to insert here";

【讨论】:

  • 使用 .value 将“inside tag”作为字符串打印到文本区域,而不是创建跨度。
  • @HarshitaLal 如果您尝试在 textarea 中嵌入纯 html,答案是否定的。无法在 textarea 中创建 span 标签,您只能在字符串 fromat 中输入 HTML。 HTML
  • 感谢您的回答。这很有帮助。
  • @HarshitaLal 欢迎您。如果有任何帮助,您可以通过单击将此答案标记为答案。非常感谢
【解决方案2】:

要更改 value 的文本区域,您必须这样做:

document.getElementById('t1').value = '<span>inside tag</span>';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-23
    • 2022-06-10
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多