Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测所选文本是否包装在span标记中_Javascript_Html_Css - Fatal编程技术网

Javascript 如何检测所选文本是否包装在span标记中

Javascript 如何检测所选文本是否包装在span标记中,javascript,html,css,Javascript,Html,Css,我有一个简单的contenteditablediv作为编辑器,还有一个带有onclick功能的按钮,可以将所选文本的颜色更改为黄色 function yellow(){ { var selection = window.getSelection().getRangeAt(0); var selectedText = selection.extractContents(); var span = document.cre

我有一个简单的
contenteditable
div
作为编辑器,还有一个带有
onclick
功能的按钮,可以将所选文本的颜色更改为黄色

    function yellow(){
    {       
        var selection = window.getSelection().getRangeAt(0);
        var selectedText = selection.extractContents();
        var span = document.createElement("span");
        span.style.color = "yellow";
        span.appendChild(selectedText);
        selection.insertNode(span);
    }
    }
我最近注意到,如果我在
div
之外选择了文本,它仍然可能是黄色的(因为我使用的是
window.getSelection()

为了解决这个问题,我添加了一个if语句:

    function yellow(){
    {       
        var selection = window.getSelection().getRangeAt(0);
        if(window.getSelection().baseNode.parentNode.id != "editor1") return;
        var selectedText = selection.extractContents();
        var span = document.createElement("span");
        span.style.color = "yellow";
        span.appendChild(selectedText);
        selection.insertNode(span);
    }
    }
我希望添加另一个类似于以下内容的if语句:

if(window.getSelection().baseNode.parentNode.id != "editor1") return;
除了代替
id!=“editor1”
,它检测所选文本是否有span文本环绕。

如果(window.getSelection().baseNode.parentNode.tagName=='span')


检查我的答案,然后用
SPAN
替换
A
。它遵循同样的逻辑。

为什么要使用双大括号?