我有以下javascript,它在選擇文本並單擊按鈕時突出顯示文本。getSelection突出顯示
$('.highlight').on("click", function (e) {
selected = getSelection();
range = selected.getRangeAt(0);
newNode = document.createElement("span");
newNode.setAttribute("class", "highlighted");
range.surroundContents(newNode);
});
function getSelection() {
var seltxt = '';
if (window.getSelection) {
seltxt = window.getSelection();
} else if (document.getSelection) {
seltxt = document.getSelection();
} else if (document.selection) {
seltxt = document.selection.createRange().text;
} else return;
return seltxt;
}
但是,這會在我的p標記中創建很多凌亂的span類。是否可以立即對選定的文本進行着色而不必將其包裹在一個範圍中?
的另一個原因是這樣做的,我要檢查選中的文本是否已經有一個黃色的背景,如果是把它透明的(也許是兩種顏色之間切換)
如果你想這樣的事情發生,當你選擇,你能做到這一點的'CSS' – lshettyl 2015-04-02 13:44:00
感謝@LShetty我會怎麼做。我想讓它保持背景顏色(不只是在選擇時)。例如電子書中的高亮工具。 – 2015-04-02 14:01:05
代碼格式 – Khalid 2015-04-02 16:24:41