Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 在特定字符后插入文本?_Javascript_Jquery - Fatal编程技术网

Javascript 在特定字符后插入文本?

Javascript 在特定字符后插入文本?,javascript,jquery,Javascript,Jquery,是否可以在文本段落中一定数量的字符后插入div 如果我有一个div全文,像这样: <div class="content"> Vivamus luctus urna sed urna ultricies ac tempor dui sagittis. </div> $("div").on("mouseup", function () { var start = window.getSelection().anchorOffset; var end = w

是否可以在文本段落中一定数量的字符后插入
div

如果我有一个
div
全文,像这样:

<div class="content">
Vivamus luctus urna sed urna ultricies ac tempor dui sagittis.
</div>
$("div").on("mouseup", function () {
    var start = window.getSelection().anchorOffset;
    var end = window.getSelection().extentOffset;
    console.log(start + ", " + end);
    console.log($(".content").text().substring(start, end));
    $('.output').html($('.content').html().substring(0, start) + '<span class="highlight">' + $('.content').html().substring(start, end) + "</span>" + $('.content').html().substring(end));
});
我可以用jQuery/Javascript实现这一点吗

我正在从
getSelection().extendtoffset
接收要插入
div
的边界,该边界会产生一个数字,比如说
13
,这就是我要插入
div
的位置

我能让它部分工作,就像这样:

<div class="content">
Vivamus luctus urna sed urna ultricies ac tempor dui sagittis.
</div>
$("div").on("mouseup", function () {
    var start = window.getSelection().anchorOffset;
    var end = window.getSelection().extentOffset;
    console.log(start + ", " + end);
    console.log($(".content").text().substring(start, end));
    $('.output').html($('.content').html().substring(0, start) + '<span class="highlight">' + $('.content').html().substring(start, end) + "</span>" + $('.content').html().substring(end));
});
$(“div”)。在(“mouseup”,函数()上{
var start=window.getSelection().anchorOffset;
var end=window.getSelection().extendofset;
console.log(开始+”,“+结束);
console.log($(“.content”).text().substring(start,end));
$('.output').html($('.content').html().substring(0,开始)+'+$('.content').html().substring(开始,结束)+'+$('.content').html().substring(结束));
});

但是,当边界发生变化时,这将替换整个文本,这意味着在
div

中不能包含多个部分。这是一个相当复杂的问题,特别是当您试图实现跨浏览器功能时。我建议使用这个库 另请查看此示例用法

您可以使用
$(“.content”).contents()
获取文本DOM节点,并将其替换为所需的部分,只需查看节点类型是否是您所需的


“Vivamus luctus urna sed urna ultricies ac tempor dui sagittis”无效。
:分区必须关闭。显然。我要做的是使用相同的方法,并在末尾添加一个结束符
div
。幸运的是,我不需要跨浏览器兼容性。只是Safari。我在看Rangy,但我需要能够检测高亮显示的文本是否已经高亮显示,如果已经高亮显示,则删除当前高亮显示,并添加一个新的高亮显示,将这两个部分结合起来。你知道兰吉能不能做到吗?看看这个问题谢谢你的链接。但是,仅当整个选择只是上一个选择时,才会返回true。我需要能够检测当前所选文本的任何部分是否包含突出显示的部分。您可能可以使用“您能提供一个示例吗?”阅读两遍后,我想我误解了您的问题。你想要达到的目标是什么?使一些选定的文本被放在其他地方,或者只是将其包装在该div中?也许我可以帮你;)