当前位置: 首页 > 知识库问答 >
问题:

在可编辑的div中切换选定文本的粗体

谯和煦
2023-03-14

我正在为我的学校网站写一个网页编辑器,一切都很顺利,但我遇到了一个问题,删除字体样式从选定的文本。我可以选择文本,然后让jquery将span标记应用到它,并关联一个css类,当我想从所选文本中删除该类时,我的问题就来了。这是我目前所掌握的...

<div class="text" contenteditable="true">
Editable Content
</div>

我有一个事件监听器,它拾取粗体按钮按下并触发下面的函数...

function makeBold() {
var range = window.getSelection().getRangeAt(0);
alert(range.anchorNode.parentNode.nodevalue);
var newNode = document.createElement('span');
newNode.className = "bold-text";
range.surroundContents(newNode);
}

这个函数很好的应用样式,但我不知道我将如何删除它与切换。我正在努力理解如何使用范围选择来删除父标记。我正在尝试使用.closest()选择器,但一直得到对象或未定义的错误?谁能告诉我我是否走对了?

谢谢

戴夫

编辑:

im不使用像#myid或.classname这样的典型选择器,我需要将样式应用于用户选择的文本,因此im使用上面函数的span标记包装它。理想情况下,我需要找到一种方法,找到应用了.bold-text类的最接近的父节点,并将其删除。

共有1个答案

上官自明
2023-03-14

使用jQuery的'remove class'方法删除给要格式化的文本的类。每次切换时,AddClassRemoveClass

http://api.jquery.com/removeClass/

像这样做

单击一次-$('#id').addClass('class_of_text');

单击两下-$('.class_of_text').removeClass('.class_of_text);

单击“三”-$('#id').addClass('class_of_text');

等等...

 类似资料:
  • 在编辑文本中,用户应选择他们键入的内容是粗体、斜体还是正常。在我的情况下,当用户选择粗体时,整个编辑文本将更改为粗体,如果他再次选择斜体,则整个编辑文本将变为斜体。当用户选择粗体键入某些内容时,它应该是粗体的,当他选择斜体或正常时,他键入的单词应该是斜体或正常,而不是前一个粗体。此外,当我在编辑文本中打印输入时,即使以粗体显示,它也被正常打印。 我在底部有我的代码。 这是我将编辑文本设置为粗体或斜

  • 问题内容: 我有一个contenteditable div,需要在插入符号的位置插入文本, 可以通过IE在IE中轻松完成此操作 在Firefox / Chrome中有类似的实现方式吗? 谢谢! 问题答案: 以下功能将在插入符号位置插入文本,并删除现有选择。它适用于所有主流桌面浏览器: 更新 基于注释,下面是一些用于保存和还原选择的代码。在显示上下文菜单之前,应该将返回值存储在一个变量中,然后在隐藏

  • 我有一个可编辑的div内容,我保存了一些html文本。我添加了属性< code>runat="server",并希望用c#获得html文本内容。有人能帮我吗?这是我的< code>div PS:不起作用!! PS2:我的目的通常就像这里一样。我想从允许的div中获取数据并将其用作HTML字符串 已解决:

  • 问题内容: 假设我有一个包含以下内容的文本文件: 有什么方法可以编辑该文本文件中的特定行?现在我有这个: 是的,我知道那是不正确的。但是你明白我的意思吧?我正在尝试通过用法师替换战士来编辑第2行。但是我还能做到吗? 问题答案: 您想做这样的事情: 这样做的原因是您不能直接在文件中执行“更改第2行”之类的操作。您只能覆盖(而不是删除)文件的某些部分- 这意味着新内容仅覆盖旧内容。因此,如果您在第2行

  • 问题内容: 我不确定这是否可能,但是我有一种情况,我想在HTML select标记的选项内将文本的 一部分 (不是全部)加粗。 我尝试使用b标签以及强标签,但没有运气(在Chrome上)。CSS可能会起作用,但是由于它在元素级别起作用,所以我不确定该怎么做。 有什么办法吗? 问题答案: 没有; 这是不可能的。 相反,您可以使用Javascript制作伪造的下拉列表。

  • 我有一个包含两个组件的UI--一个JEditorPane和一个JComboBox。我的目标是能够在JEditorPane中键入一些内容,选择文本的一部分,并且当它仍然被选中时,在可编辑的JComboBox中键入和/或选择一个值。 这是一个文本编辑器类型的程序,我想在其中只更改编辑器窗格中选定文本的字体大小。字体大小来自“可编辑”组合框。为了澄清一下,我不是在问如何对文本应用样式,我是在问如何在组合