1
我有一個簡單的contenteditable
div
,它提供一個編輯器和一個帶onclick
函數的按鈕,可將選定文本的顏色更改爲黃色。如何檢測選定的文本是否包裹在span標籤中
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"
,它檢測是否選擇文本有跨文本纏繞或不纏繞。
你爲什麼要使用雙大括號? –