選択したテキストの前後にいくつかの要素を作成できる関数を探しています。このようなものはjavascript replace selection all browsersと似ていますが、置き換える代わりに選択の前または後のコンテンツを追加する場合は、after()
とbefore()
jQueryメソッドのようにします。私はいくつかのDOMの選択方法を使用すべきでしょうか?あるいは、それを実行するのが簡単な何かが存在しますか?テキストの前後に要素を追加する
6
A
答えて
10
ここには、これを行うための機能があります。
ライブ例:http://jsfiddle.net/hjfVw/
コード:
var insertHtmlBeforeSelection, insertHtmlAfterSelection;
(function() {
function createInserter(isBefore) {
return function(html) {
var sel, range, node;
if (window.getSelection) {
// IE9 and non-IE
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = window.getSelection().getRangeAt(0);
range.collapse(isBefore);
// Range.createContextualFragment() would be useful here but is
// non-standard and not supported in all browsers (IE9, for one)
var el = document.createElement("div");
el.innerHTML = html;
var frag = document.createDocumentFragment(), node, lastNode;
while ((node = el.firstChild)) {
lastNode = frag.appendChild(node);
}
range.insertNode(frag);
}
} else if (document.selection && document.selection.createRange) {
// IE < 9
range = document.selection.createRange();
range.collapse(isBefore);
range.pasteHTML(html);
}
}
}
insertHtmlBeforeSelection = createInserter(true);
insertHtmlAfterSelection = createInserter(false);
})();
2
: collapse所定の範囲と要素を
その他挿入するために使用pasteHTML:また collapse所与の範囲およびinsertNode
両方を介して要素を挿入collapse-methodsは、折りたたむ場所を定義するオプションの引数を受け入れます。 要素を最後に配置する場合は、最後まで折り畳んでください。
関連する問題
- 1. HTML要素の前または後にテキストを追加する
- 2. 配列の最後の要素に要素を追加する
- 3. wp_nav_menuをカスタマイズしてサブメニュー要素の前にテキストを追加する
- 4. は、UL要素にLI要素のテキストからクラスを追加する方法
- 5. ウィンドウオープナの操作。親ウィンドウの要素にテキストを追加する
- 6. 要素の値にテキストを追加する
- 7. 要素をスクリプトで追加した後にjqueryクラスを追加するには?
- 8. JTableの前と後のテキストを追加する
- 9. 要素の後にスペースを追加する方法
- 10. JSF - f:selectItem要素の後にh:graphicImageを追加する方法
- 11. AndroidでListViewの後に要素を追加する方法
- 12. div jqueryにテキストを追加する前
- 13. 入力はページの要素にテキストを追加します
- 14. 要素が追加された後にListViewを更新する
- 15. は当時、ページに要素を追加し、別のページに移動した後、追加要素が
- 16. Java:ArrayListから要素を削除してテキストを追加する
- 17. 配列要素の末尾にテキストを追加
- 18. 要素が完全にフェードアウトした後に、どのようにテキストを追加するのですか?
- 19. 2つの親要素に要素を追加する
- 20. 要素にクラス要素を追加する際の問題
- 21. jQuery - 要素の数の後にhtmlを追加!
- 22. フレックスチャートにカスタム要素を追加する
- 23. Jquery、要素にクラスを追加する
- 24. ベクトルに要素を追加する
- 25. DOMにキャンバス要素を追加する
- 26. JSONオブジェクトに要素を追加する
- 27. pythonジェネレータに要素を追加する
- 28. セレンにWeb要素を追加する
- 29. リストに要素を追加する
- 30. html要素にイベントを追加する
ない答え、しかし:私はあなたが使用してかなり簡単にこれを行うことができます賭けるティム・ダウン[Rangy](http://code.google.com/p/rangy /)ライブラリ。 –