【问题标题】:jquery append() in string positionjquery append() 在字符串位置
【发布时间】:2016-11-30 00:49:37
【问题描述】:
<div contenteditable="true">
    abcde<img src="abc.jp" />fg
</div>

$('div').append('<img src="abc.jpg" />'); //this will append img at end of text

我尝试将图像添加到 div 的位置 6

有什么方法可以将图像附加到位置吗?

【问题讨论】:

  • 不是您问题的答案,但您应该使用&lt;img&gt; 标签,而不是&lt;im&gt;
  • 所以你想在文本'fg'之后附加img?
  • abcde 和 fg 之间没有

标签: javascript jquery


【解决方案1】:

获取div 的文本在指定位置拆分并再次连接。然后覆盖div的html:

var a = $.trim($('div').text());
var b = '<img src="https://jsfiddle.net/img/logo.png" />';
var position = 5;
var output = a.substr(0, position) + b + a.substr(position);
$('div').html(output);

Example


注意事项

使用.substr()似乎比.splice

我使用$.trim() 来避免由于空格或换行符导致的错误位置计数

位置设置为5,因为.substr()0开始计数

【讨论】:

  • @Mahi 刚刚更新了我的答案以添加,删除修剪,你会看到
  • @Mahi,在&gt;abc...之间有字符,特别是'\n ',必须要占。
【解决方案2】:

将你的文本包裹在段落标签中,然后你可以在段落之后附加img:

<div contenteditable="true">
    <p>abcde</p><span>fg</span>
</div>

$('div p').append('<img src="abc.jpg" />');

【讨论】:

  • 不能放标签,因为它要发布到服务器
猜你喜欢
  • 2017-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-02
  • 2014-10-22
  • 2015-08-04
相关资源
最近更新 更多