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中?也许我可以帮你;)