Javascript 删除强标记并重新加粗匹配字符串中的字符
在Javascript 删除强标记并重新加粗匹配字符串中的字符,javascript,jquery,Javascript,Jquery,在input中更改时,我尝试将按钮字符串中的所有匹配字符加粗。但是,该函数仅在搜索的第一个字母上工作正常,并且当有多个字符串匹配时,不会向字符串添加 我尝试在keyup上打开匹配的字符串,使用以下任一解决方案将强字符串重新应用于匹配的字符串,但这也不起作用: $("button").find('strong').unwrap('strong'); $("button").children().unwrap('strong'); $("button").children().find('stron
input
中更改时,我尝试将按钮字符串中的所有匹配字符加粗。但是,该函数仅在搜索的第一个字母上工作正常,并且当有多个字符串匹配时,不会向字符串添加
我尝试在keyup
上打开匹配的字符串,使用以下任一解决方案将强字符串重新应用于匹配的字符串,但这也不起作用:
$("button").find('strong').unwrap('strong');
$("button").children().unwrap('strong');
$("button").children().find('strong').unwrap();
$(“输入”).on('keyup',function(){
//$(“按钮”)。查找('strong')。展开('strong');
//$(“按钮”).children().unwrap('strong');
//$(“按钮”).children().find('strong').unwrap();
var boldLetter=$(“输入”).val();
$(“button”).html(函数(\ux,html){
返回html.replace(新的RegExp(粗体字母“gi”),“$&”;
});
});代码>
输入搜索词:
阿富汗
南极洲
马里
加拿大
美国
法国
智利
秘鲁
您不想打开
,您想打开中的文本。您可以使用以下方法指定此选项:
$(“输入”).on('keyup',function(){
$(“按钮”).find('strong').contents().unwrap();
var boldLetter=$(“输入”).val();
if(!boldLetter)return;//如果输入为空,则不执行正则表达式替换
$(“button”).html(函数(\ux,html){
返回html.replace(新的RegExp(粗体字母“gi”),“$&”;
});
});代码>
输入搜索词:
阿富汗
南极洲
马里
加拿大
美国
法国
智利
秘鲁
谢谢泰勒,这有点奏效了。请您输入a
然后用退格
清除文本,然后再次使用a
这一次粗体不可用working@MonaCoder诚然,我注意到了这一点,但我认为这可能只是你的片段的一个副作用。我可以编辑答案来解决这个问题。我刚刚注意到测试代码的问题,你是对的,它也发生在初始代码上。谢谢你,泰勒
$("button strong").contents().unwrap('strong');