14

来自数据库的链接是网站标题并呈现在“有趣的文章:作者”页面上 - 但有时链接是一个问题“中国在哪里?:GoogleMaps”。?:看起来很傻,所以我想?</span>:?</span>.

这是我制定的jQuery:

$('#relatedinfo ul li a').html().replace('?</span>:','?</span>');

但这实际上并没有在 DOM 中替换它。如何让该字符串实际更改页面?

4

2 回答 2

26

我建议:

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

JS 小提琴演示

甚至:

$('#relatedinfo ul li a').text(function(index,text){
    return text.replace(':','');
});

JS 小提琴演示

一种更新的方法是检查 中的最后一个字符span是否在数组中['?','!','.'],如果是,:则从 nextSibling 的 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(':','');
    }
});

JS 小提琴演示

参考:

于 2013-03-04T14:26:13.313 回答
0

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

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

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

来源:当不在 P、DIV、SPAN、TD 以外的 html 标记内时,使用 jQuery 查找/替换 html 文本

于 2016-10-03T07:57:33.473 回答