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

标签 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 所在的位置。

我使用了 $("#divId").append 但只将输入插入到 div 的末尾,而不是我需要的地方。

任何帮助将不胜感激。

最佳答案

这个功能你试过吗?

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 ); } }

关于javascript - jquery - 在插入符号位置插入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29062141/

相关文章:

javascript - 在仅包含图像的列数 CSS 列中平衡高度

javascript - JavaScript 警报中的图像

jquery - 旋转分区使用离屏幻灯片动画

php - 加载 javascript 函数,并在加载后在指定的秒数内再次加载它

javascript - 在 html 中显示任一下拉列表

javascript - location.href 不改变 iframe src

javascript - 为什么函数有长度属性?

javascript - 使用 JavaScript 获取元素的所有 CSS 样式

javascript - 下拉选择表单,转到提交时的 URL

html - 尽管没有报告错误,但 CSS 文件中的 @Font-face 无法正常工作