javascript - 顽固的下划线不起作用

标签 javascript html css underline

我正在制作一个文本编辑器,但是删除下划线功能不起作用。 工作代码示例:jsfiddle

这是给出问题的代码

else if (tag == "u") {
    sell = window.getSelection().getRangeAt(0);

    if (selectionIsUnderlined()) {
        node = range.createContextualFragment("<font style='text-decoration: none !important'>" + sell + "</font>");
    } else {
        node = range.createContextualFragment("<u>" + sell + "</u>");
    }

    range.deleteContents();
}

有什么想法吗?

最佳答案

那么删除下划线的问题是选择没有考虑到包装 <u>元素。里面的内容<u>已删除,新内容为 <font>标签插入内部 <u>标签。

我尝试上升一个节点并检查它是否是 <u>然后删除节点:

if (selectionIsUnderlined()) {
    node = range.createContextualFragment(
           "<font style='text-decoration: none !important'>" + sell + "</font>");
    var nd = sel.anchorNode;
    if(nd.nodeName!=='span'){
        nd = nd.parentNode;
    }

    if (nd) {
        nd.remove();
    }

更新后的 fiddle 是 here

PS:-这只是一个实验。使用前请考虑性能/浏览器兼容性和其他优缺点。

关于javascript - 顽固的下划线不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21713896/

相关文章:

css - 有什么好的教程可以将 HTML CSS 转换为 wordpress?

javascript - 为什么 Twitter 的 typeahead.js 不能与我的 JSON 配合使用?

javascript - 如何获取多选的自定义属性

Javascript Object.assign 的行为不符合预期

javascript - 将 javascript 显示为代码片段

html - 使特定的 div 或任何元素显示在所有其他元素之上

javascript - 如何通过链接使图像出现在另一个页面上

html - CSS - 边距和填充不适用于垂直定位

javascript - Firefox 扩展中的 GMail 访问

javascript - 获取我选择的节点的 id