Найти и заменить строку HTML на jQuery
ссылки из базы данных являются заголовками сайтов и отображаются на странице"Интересные Статьи: автор "- но иногда ссылка является вопросом"где Китай?: GoogleMaps". The ?:
выглядит глупо, поэтому я хотел заменить HTML ?</span>:
С ?</span>
.
вот jQuery, который я разработал:
$('#relatedinfo ul li a').html().replace('?</span>:','?</span>');
но это фактически не заменяет его в DOM. Как заставить эту строку изменить страницу?
2 ответов
Я предлагаю:
$('#relatedinfo ul li a').html(function(index,html){
return html.replace(/<\/span>(\:)/,'');
});
или еще:
$('#relatedinfo ul li a').text(function(index,text){
return text.replace(':','');
});
обновленный подход состоит в том, чтобы проверить, что последний символ в span
в массиве ['?','!','.']
и, если это так, то удалить :
от свойства устанавливается равным В / / сделать так:
$('#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(':','');
}
});
ссылки:
вы также можете использовать regex:
var rx = new RegExp('(?![^<&]+[>;])' + searchString, 'gi');
$('#relatedinfo').html(function (i, html) {
return html.replace(rx, '<b>$&</b>')
});