【问题标题】:Remove specific word from HTML-element given the text decoration tags给定文本装饰标签,从 HTML 元素中删除特定单词
【发布时间】:2017-05-15 10:43:00
【问题描述】:

我有一个 contenteditable 元素,里面有一些用<b><i> 标签装饰的文本。我正在尝试找到在不影响装饰的情况下从中删除最后一个单词的最佳方法。 我不能简单地删除最后一个子节点中的最后一个单词,因为一个单词可以包含在多个 <b><i> 标记中。

例如(必须删除“internet.”这个词):

<div>Build the best reference material for developer tools <i>on the inter<b>net</b></i>.</div>

对于这种情况,也许有一些或多或少优雅的原生解决方案。

【问题讨论】:

  • 您是指自然语言规则/约定所指定的实际 单词 - 还是基本上只是“最后一个空格之后的所有内容”?
  • @CBroe 是的,我的意思是像示例中一样的实际单词
  • 这实际上并没有回答我的问题。您的示例将同时匹配两者。
  • 对不起,我所说的“单词”是指所有内容都以空格分隔

标签: javascript html dom contenteditable


【解决方案1】:

以下是可帮助您实现所需内容的示例代码。不要使用 HTML,而是使用文本,这样就可以解决问题。

var text = $("#sometext").text();
text = text.split(" ");
text.pop();  //remove last element

$(".output").html(text.join(" "));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="sometext">Build the best reference material for developer tools <i>on the inter<b>net</b></i>.</div>

<div class="output"></div>

【讨论】:

  • 他只要求删除最后一个词而不是装饰元素
  • 这段代码通过用纯文本替换元素内部 HTML 来删除所有装饰标签,这不是我需要的
猜你喜欢
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
  • 1970-01-01
  • 2015-09-17
相关资源
最近更新 更多