Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript突出显示包含来自数组的关键字的所有链接_Javascript_Html_Jquery_Css - Fatal编程技术网

如何使用JavaScript突出显示包含来自数组的关键字的所有链接

如何使用JavaScript突出显示包含来自数组的关键字的所有链接,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我正在网页上搜索数组中的关键字。这段代码的工作原理是用一个突出显示文本的标记替换文本,但当它找到作为链接的关键字时,它会将它们打断,因为它在中放置了一个标记 谢谢你的帮助,好吗 var regex=/(苹果|橙子)/g; $('*')。每个(函数(){ var$this=$(this); var text=$this.text(); if(正则表达式测试(文本)){ $this.html( $this.html().replace(正则表达式,$1') ); } }); 从代码中删除。此正在关闭

我正在网页上搜索数组中的关键字。这段代码的工作原理是用一个突出显示文本的标记替换文本,但当它找到作为链接的关键字时,它会将它们打断,因为它在
中放置了一个
标记

谢谢你的帮助,好吗

var regex=/(苹果|橙子)/g;
$('*')。每个(函数(){
var$this=$(this);
var text=$this.text();
if(正则表达式测试(文本)){
$this.html(
$this.html().replace(正则表达式,$1')
);
}
});
从代码中删除
。此
正在关闭任何锚定标记

var regex = /(apples|oranges)/g;

$('*').each(function() {
    var $this = $(this);
    var text = $this.text();
    if (regex.test(text)) {
        $this.html(
            $this.html().replace(regex, '<mark>$1</mark>')
        );
    }
});
var regex=/(苹果|橙子)/g;
$('*')。每个(函数(){
var$this=$(this);
var text=$this.text();
if(正则表达式测试(文本)){
$this.html(
$this.html().replace(正则表达式,$1')
);
}
});

您应该选择
正文
中的所有
p
a
标记,而不是使用
*
,后者甚至会选择
脚本
标记本身。另外,移除关闭任何锚定标记的
。要不修改锚定标记的HTML,可以在替换之前检查当前元素是否没有子元素

var regex=/(苹果|橙子)/g;
$('body a,body p')。每个(function(){
var$this=$(this);
var text=$this.text();
if(text.match(regex)&&&$this.children().length==0){
$this.html(
$this.html().replace(正则表达式,$1')
);
}
});


我买了一些苹果。

我买了一些梨。

到目前为止,提供的答案都不起作用,它们只是导致相同或类似问题的变体。这可能只是一个很好的选择,使用现有的插件,即使它看起来有点过分了。如果标记包含src或href,则Mark.js可以使用jqueryCheck,也可以不使用jqueryCheck,例如:
var excluded=/(src | href)([\w\w]+?)>/g;if(excluded.test(text))==false{…}
。如果为false,则不要对字符串/标记进行hilite。这会修改HREF,因此它看起来可能不会断开链接,但会断开链接的URL。感谢您的建议@nicolae cas%c3%aer。正如你在这里看到的那样,它确实破坏了链接:这修改了HREF,因此它破坏了链接的URL。谢谢@hev1,它工作得非常好。如果有人需要它,你可以看到它在这里工作:@TimB没问题。@hev1,我有一个后续问题,不确定我应该在这里提问还是开始一个新的线程?在网页中,每一行都包含在一个标记中,并且有关于每个产品的其他信息。我买了一些苹果,苹果每公斤2英镑。我想继续突出显示您向我展示的匹配单词,但我还想使标签中的所有文本具有浅灰色字体颜色,以便在向下扫描页面时可以轻松忽略该特定产品。我该怎么做?@TimB最好问一个新问题。很遗憾,我现在没有时间。很抱歉