Даже если вам удастся заставить селектор работать, вы выделите весь содержащий элемент (p, span, div и т. Д.), Поэтому простой вызов css()
в конечном итоге подчеркнет весь блок текста. Чтобы подчеркнуть конкретную часть, вам нужно использовать что-то вроде:
function underline(query) {
$('.bar').filter(':contains("' + query+ '")').each(function() {
var html = $(this).html();
html = html.replace(query, '<span style="text-decoration: underline">' + query + '</span>';
$(this).html(html);
});
}
Это все еще не так хорошо, так как он может заменить запрос, пока он находится в атрибуте или что-то в этом роде, но это шаг к тому, чтобы подчеркнуть вещи отдельно.