Javascript 生成所见即所得,无法将样式应用于div中的选定(高亮显示)文本
这是我第一次作为作家,我总是阅读所有有用的人的帖子,但我从来没有写过。我决定写信是因为我找不到这个具体问题的答案。 我正在尝试用jQuery和JavaScript做一个所见即所得,但我遇到的问题是,我无法将样式应用到选中了某些文本的特定div。 我正在做以下工作:Javascript 生成所见即所得,无法将样式应用于div中的选定(高亮显示)文本,javascript,jquery,html,Javascript,Jquery,Html,这是我第一次作为作家,我总是阅读所有有用的人的帖子,但我从来没有写过。我决定写信是因为我找不到这个具体问题的答案。 我正在尝试用jQuery和JavaScript做一个所见即所得,但我遇到的问题是,我无法将样式应用到选中了某些文本的特定div。 我正在做以下工作: $("#idofthediv").mouseup(function () { var selObj = window.getSelection(); alert("Selected: " + selObj);
$("#idofthediv").mouseup(function () {
var selObj = window.getSelection();
alert("Selected: " + selObj);
selObj.style.color = 'red';
});
我在警报中获得了所选文本,但我无法将样式应用于该文本,甚至无法应用于包含该文本的div。第三行selObj.style.color='red';不工作是我尝试过的事,但我知道这是错误的
有什么想法吗
非常感谢
Tomas您可以尝试以下方法:
var spn = '<span class="red">' + selObj.toString() + '</span>';
var newContent = document.activeElement.innerHTML.replace(selObj, spn.toString());
document.activeElement.innerHTML = newContent;
将所选文本包装在一个span元素内,并对其进行适当的样式设置,然后获取活动元素并进行替换。
问题是,replace函数将替换第一个出现的字符串,而不是所选字符串。但是,您可以对其进行修改,以替换所选字符串的所有事件。我只是不知道是否有一种方法可以完全替换选定的事件