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でこれを行うことはできますか?

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.

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 に答える