在特定字符后插入文字?

时间:2013-02-28 21:19:07

标签: javascript jquery

是否可以在文本段落中的一定数量的字符后插入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吗?

我正在接收我要从div插入getSelection().extentOffset的界限,这会产生一个数字,比如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中不能包含多个部分。

2 个答案:

答案 0 :(得分:1)

如果您尝试实现跨浏览器功能,这是一个非常复杂的问题。我建议使用此库Rangy 另请查看此question以获取示例用法

答案 1 :(得分:0)

您可以使用$(".content").contents()来获取text-DOM-Nodes并将其替换为您想要的部分,只需查看nodeType是否符合您的要求。

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