Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 用jQuery查找并替换HTML字符串_Javascript_Jquery_Replace - Fatal编程技术网

Javascript 用jQuery查找并替换HTML字符串

Javascript 用jQuery查找并替换HTML字符串,javascript,jquery,replace,Javascript,Jquery,Replace,来自数据库的链接是网站标题,并呈现在页面上:“作者”-但偶尔链接是一个问题:“谷歌地图”。?:看起来很傻,所以我想用?替换HTML?: 以下是我编写的jQuery: $('#relatedinfo ul li a').html()。替换('?:','?') 但这实际上并不能在DOM中取代它。如何让该字符串实际更改页面?我建议: $('#relatedinfo ul li a').html(function(index,html){ return html.replace(/<\/s

来自数据库的链接是网站标题,并呈现在页面上:“作者”-但偶尔链接是一个问题:“谷歌地图”。
?:
看起来很傻,所以我想用
替换HTML
?:

以下是我编写的jQuery:

$('#relatedinfo ul li a').html()。替换('?:','?')

但这实际上并不能在DOM中取代它。如何让该字符串实际更改页面?

我建议:

$('#relatedinfo ul li a').html(function(index,html){
    return html.replace(/<\/span>(\:)/,'');
});

更新的方法是检查
span
中的最后一个字符是否在
['?'、'!'、'.'.]
的数组中,如果是,则从下一个sibling的nodeValue中删除

$('#relatedinfo ul li a span').text(function(index,text){
    var lastchar = text.split('').pop();
    if (['?','!','.'].indexOf(lastchar) > -1) {
        this.nextSibling.nodeValue = this.nextSibling.nodeValue.replace(':','');
    }
});

参考资料:


您也可以使用正则表达式:

var rx = new RegExp('(?![^<&]+[>;])' + searchString, 'gi');

$('#relatedinfo').html(function (i, html) {
   return html.replace(rx, '<b>$&</b>')
});
var rx=new RegExp('(?![^;])'+searchString,'gi');
$('#relatedinfo').html(函数(i,html){
返回html.replace(rx,$&)
});

资料来源:

多谢你的回答,并为你花了这么长时间才回复而道歉。答案是正确的,但我的问题框架不正确,因此解决方案不太适合我的问题。我已经,并且,使用你提供的信息,计算出了它的大部分。。。。只是无法理解if语句中或操作数的语法。我最终用!=空:)
var rx = new RegExp('(?![^<&]+[>;])' + searchString, 'gi');

$('#relatedinfo').html(function (i, html) {
   return html.replace(rx, '<b>$&</b>')
});