jquery - 在插入符号位置插入元素

时间:2015-03-15 15:05:57

标签: javascript jquery html

我有一个contentEditable div,在这个div里面我有一张桌子。

示例HTML:

<div id="divId" contenteditable="true">
   <table>
      <tbody>
         <tr>
            <td><br></td>
            <td>@param<br></td>
         </tr>
         <tr>
            <td><br></td>
            <td><br></td>
         </tr>
      </tbody>
    </table>
</div>

我想在插入位置(表格中的选定单元格)上插入一个输入元素 - 例如@param所在的位置。

我使用了$(&#34; #divId&#34;)附加但是只将输入插入div的末尾而不是我需要它。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

你试过这个功能吗?

http://goo.gl/BdPd3k

function pasteHtmlAtCaret( html ) {
        var sel, range;
        if ( window.getSelection ) {
            // IE9 and non-IE
            sel = window.getSelection();
            if ( sel.getRangeAt && sel.rangeCount ) {
                range = sel.getRangeAt( 0 );
                range.deleteContents();

// Range.createContextualFragment() would be useful here but is // only relatively recently standardized and is not supported in // some 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 ); // Preserve the selection if ( lastNode ) { range = range.cloneRange(); range.setStartAfter( lastNode ); range.collapse( true ); sel.removeAllRanges(); sel.addRange( range ); } } } else if ( document.selection && document.selection.type != "Control" ) { // IE < 9 document.selection.createRange().pasteHTML( html ); } }