<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()
选择器,但不断收到对象或未定义的错误?任何人都可以告诉我,我是否在正确的轨道上?
由于
戴夫
修改:
我没有使用像#myid或.classname这样的典型选择器我需要将样式应用于用户选择的文本,因此我可以使用带有上述函数的span标签将其包装起来。理想情况下,我需要找到一种方法来找到应用了.bold-text类的最近的父节点并将其删除。
答案 0 :(得分:0)
使用jQuery的'removeClass'方法删除您要为要格式化的文本提供的类。在每个切换中,addClass
和removeClass
http://api.jquery.com/removeclass/
做这样的事情
点击一下 - $('#id').addClass('class_of_text');
- $('.class_of_text').removeClass('.class_of_text);
点击三 - $('#id').addClass('class_of_text');
依旧......
答案 1 :(得分:0)
您可以使用javascript的removeattribute从该元素中删除class属性。