来自数据库的链接是网站标题并呈现在“有趣的文章:作者”页面上 - 但有时链接是一个问题“中国在哪里?:GoogleMaps”。?:
看起来很傻,所以我想?</span>:
用?</span>
.
这是我制定的jQuery:
$('#relatedinfo ul li a').html().replace('?</span>:','?</span>');
但这实际上并没有在 DOM 中替换它。如何让该字符串实际更改页面?
我建议:
$('#relatedinfo ul li a').html(function(index,html){
return html.replace(/<\/span>(\:)/,'');
});
甚至:
$('#relatedinfo ul li a').text(function(index,text){
return text.replace(':','');
});
一种更新的方法是检查 中的最后一个字符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(':','');
}
});
参考:
您还可以使用正则表达式:
var rx = new RegExp('(?![^<&]+[>;])' + searchString, 'gi');
$('#relatedinfo').html(function (i, html) {
return html.replace(rx, '<b>$&</b>')
});