制作WYSIWYG,不能将样式应用于div中的选定(突出显示)文本

时间:2013-12-09 14:16:47

标签: javascript jquery html

这是我第一次作为“作家”,我总是阅读所有有用的人物帖子,但我以前从未写过。我决定写,因为我找不到这个具体问题的答案。 我正在尝试用jQuery和JavaScript做一个所见即所得,我遇到的问题是我不能将样式应用于特定的div,其中选择了一些文本。 我正在做以下事情:

$("#idofthediv").mouseup(function () {
    var selObj = window.getSelection();
    alert("Selected: " + selObj);
    selObj.style.color = 'red';
});

我在警告中获得了所选文本,但我无法将该样式应用于该文本,甚至不适用于包含该文本的div。 (第三行selObj.style.color ='red';不起作用是我试过的东西,但知道它是错的)

有什么想法吗?

非常感谢

托马斯

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情:

var spn = '<span class="red">' + selObj.toString() + '</span>';
var newContent = document.activeElement.innerHTML.replace(selObj, spn.toString());
document.activeElement.innerHTML = newContent;

http://jsfiddle.net/49BeS/1/

将所选文本换行到适当设置样式的span元素中,然后获取活动元素并进行替换。 问题是,替换函数将替换字符串的第一个出现而不是所选字符串。但是,您可以修改它以替换所选字符串的所有出现。我只是不知道是否有办法完全取代选定的出现。

相关问题