使用jQuery在选定文本之前和之后插入文本

我想在HTML文档中的任何选定文本之前和之后放置一些指定的文本(如果可能)。

我认为应该有一个聪明的方法来使用jQuery。 无论如何使用jQuery在文档中的任何位置选择文本之前和之后插入特定文本?

好吧,这是一种方法(尽管我怀疑有更简洁,更有效, 诚实, 更好的方法):

var needle = 'ipsum'; var wrappingText = ' wrapper '; $('p').each( function(){ var haystack = $(this).text(); $(this).text(haystack.replace(needle, wrappingText + needle + wrappingText)); }); 

显然,这依赖于包含在p元素中的文本,但是很容易将其修改为任何其他特定元素或元素类。

JS小提琴演示

这里有一种用html包裹needle的方法(尽管如此,它可能不是最漂亮的方式):

HTML:

 

Lorem ipsum dolor sit amet.

Lorem ipsum dolor sit amet.

jQuery的:

 $('form').submit( function(){ var needle, wrapper, haystack; if ($('#needle').val().length >= 1) { needle = $('#needle').val(); } else { needle = 'ipsum'; } if ($('#wrapper').val().length >= 1) { wrapper = $('#wrapper').val(); } else { wrapper = 'wrap'; } var wrappingText = 'wrapper'; $('p').each( function(){ if ($('#text').is(':checked')) { haystack = $(this).text(); $(this).text(haystack.replace(needle, wrapper + needle + wrapper)); } else if ($('#html').is(':checked')) { haystack = $(this).text(); $(this).html(haystack.replace(needle, wrapper + needle + wrapper.replace('<', ' 

JS小提琴演示 。

也许这个插件会有帮助吗? 以下是如何使用它的示例。