gpt4 book ai didi

jquery - 使用 jQuery 在所选文本之前和之后插入文本

转载 作者:行者123 更新时间:2023-12-01 00:20:34 26 4
gpt4 key购买 nike

我想在 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 Fiddle demo

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

html:

<form action="" method="post">
<fieldset>
<label for="needle">Search for this text: </label>
<input type="text" name="needle" id="needle" placeholder="Example: 'sit'" />
</fieldset>
<fieldset>
<label for="wrapper">Wrap with this:</label>
<input id="wrapper" name="wrapper" type="text" placeholder="Example: <em>" />
</fieldset>
<fieldset id="choose">
<input type="radio" name="wrapWith" id="text" value="0" checked /><label for="html">Text</label>
<input type="radio" name="wrapWith" id="html" value="1" /><label for="html">HTML</label>
</fieldset>
<fieldset>
<input type="submit" value="search" />
</fieldset>
</form>

<p>Lorem ipsum dolor sit amet.</p>
<p>Lorem ipsum dolor sit amet.</p>

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 Fiddle demo .

关于jquery - 使用 jQuery 在所选文本之前和之后插入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4775103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com