如何在javascript中删除所选文本周围的类名称

时间:2017-04-14 13:49:53

标签: javascript

我正在使用javascript来突出显示所选文本,并在用户需要时删除所选文本。
我几乎完成了所有工作,但在删除所选文本的样式时我感到困惑。
我想在所选文本周围删除类名为highlight的span,但不删除已在所选文本中可用的其他样式。

以下是the plunk I've made

function removeHighlight() {
  var sel = window.getSelection();
  if (sel.rangeCount > 0) {
    var range = sel.getRangeAt(0);
    var selectedTextNode = document.createTextNode(range.toString());
    console.log(selectedTextNode);
    range.deleteContents();
    range.insertNode(selectedTextNode);
    range.selectNode(selectedTextNode);
    sel.removeAllRanges();
    sel.addRange(range);
  }
}

删除所选文字周围突出显示的范围的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用remove属性的classList方法:

// Get all the spans that have the highlight class
var spans = document.querySelectorAll("span.highlight");

// Loop over the spans and remove the classs
for(var i = 0; i < spans.length; i++){
  spans[i].classList.remove("highlight");
}