使用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('<', ''))); } }); return false; });
JS小提琴演示 。
也许这个插件会有帮助吗? 以下是如何使用它的示例。