Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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 生成所见即所得,无法将样式应用于div中的选定(高亮显示)文本_Javascript_Jquery_Html - Fatal编程技术网

Javascript 生成所见即所得,无法将样式应用于div中的选定(高亮显示)文本

Javascript 生成所见即所得,无法将样式应用于div中的选定(高亮显示)文本,javascript,jquery,html,Javascript,Jquery,Html,这是我第一次作为作家,我总是阅读所有有用的人的帖子,但我从来没有写过。我决定写信是因为我找不到这个具体问题的答案。 我正在尝试用jQuery和JavaScript做一个所见即所得,但我遇到的问题是,我无法将样式应用到选中了某些文本的特定div。 我正在做以下工作: $("#idofthediv").mouseup(function () { var selObj = window.getSelection(); alert("Selected: " + selObj);

这是我第一次作为作家,我总是阅读所有有用的人的帖子,但我从来没有写过。我决定写信是因为我找不到这个具体问题的答案。 我正在尝试用jQuery和JavaScript做一个所见即所得,但我遇到的问题是,我无法将样式应用到选中了某些文本的特定div。 我正在做以下工作:

$("#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函数将替换第一个出现的字符串,而不是所选字符串。但是,您可以对其进行修改,以替换所选字符串的所有事件。我只是不知道是否有一种方法可以完全替换选定的事件