0

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

如果我有一个div完整的文本,像这样:

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

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

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

我可以用 jQuery/Javascript 做到这一点吗?

我收到了要插入 a 的位置的界限divgetSelection().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.

4

2 回答 2

1

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

于 2013-02-28T22:13:19.687 回答
0

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

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

于 2013-02-28T22:38:28.747 回答