在特定字符之后插入文本

Insert text after specific character?

本文关键字:之后 插入文本 字符      更新时间:2023-09-26

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

如果我有一个充满文字的div,像这样:

<div class="content">
Vivamus luctus urna sed urna ultricies ac tempor dui sagittis.
</div>

我想在第13个字符后面插入一个div:

Vivamus luctu<div>s urna sed urna ultricies ac tempor dui sagittis

我可以用jQuery/Javascript做这个吗?

我正在接收我想从getSelection().extentOffset插入div的边界,结果是一个数字,例如13,这是我想插入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中不能有多个部分。

这是一个相当复杂的问题,特别是如果你试图实现跨浏览器的功能。我推荐使用这个库还可以查看这个问题的示例用法

您可以使用$(".content").contents()来获取文本- dom - nodes,并可以将它们替换为您想要的部分,只需查看nodeType是否为您想要的。

http://api.jquery.com/contents/