-4

我有一个包含一些用户输入文本的 div。

我希望能够插入一个 html 对象,跨度可以说在这个 div 文本中的某个位置。

例如:

<div>
    There is some text in this div and I would like to append an html object right here.
    There might be some other text here.
</div>

把它变成:

<div>
    There is some text in this div and I would like to append an html object <span class="safeHtml"></span> right here.
    There might be some other text here.
</div>

需要考虑的一些事项:

  1. 我不想将整个 div 呈现为安全的 html,因为用户输入可能包含可能破坏我的设计或一些讨厌的脚本的 html 标签。
  2. 我想将插入的对象呈现为 html;其余的作为文本。

谢谢

PS:现在已经足够具体了,还是我应该在黑板上为那些关闭问题和投票的人画一幅画?

4

2 回答 2

1

您可以这样做来替换right here

$('div').each(function(){
  $(this).html($(this).html().replace(/right here/, '<span>something</span>'));
});

如果你只想插入,你可以这样做:

$('div').each(function(){
  var html = $(this).html();
  var i = html.indexOf('right here');
  if (i>=0) $(this).html(html.slice(0, i)+'<span>something</span>'+html.slice(i));
});
于 2013-03-28T20:49:01.170 回答
0

我无法理解这个问题。但我认为,这就是你要找的。 http://jsfiddle.net/rexonms/wzBh3/

HTML

<div>
    Some text. <span id="newText"> </span> .Some more text.
</div>

Javascript

var htmlObject = "Text from HTML object"; 
$("#newText").append(htmlObject);
于 2013-03-28T22:29:21.277 回答