You can use contains to find the elements that contain the selected text, then iterate over each, replacing the text with new text with the substitution based on your search string. Be aware that contains will return a match even if the elements descendants contain the text so you should probably specify some element type if you have nested elements or filter based on whether the element has inner elements.
$('div:contains("bla-bla")').each( function() {
var txt = $(this).text();
var insert = 'bla-bla<a href="...">(link)</a>';
$(this).text( txt.replace( /bla-bla/g, insert ) );
});
or
$(':contains("bla-bla")')
.filter( function() { return $(this).children().length == 0; } )
.each( function() {
var txt = $(this).text();
var insert = 'bla-bla<a href="...">(link)</a>';
$(this).text( txt.replace( /bla-bla/g, insert ) );
});