Buongiorno programmatori,
sto utilizzando un classico script che cerca ed evidenzia una parola in un testo, ho un problema però sull' esclusione di alcuni tag, mi spiego, sto utilizzando questo codice:

[CODE]
ricerca_attiva = true;
var estratto = cerca;
var trovato = true;
var cont = 0;




var re = new RegExp(cerca, 'gi');
var targetHtml = $('#genera').html();




console.log("RICERCA: ", estratto);
console.log("re: ", re);
console.log("targetHtml: ", targetHtml);
if (re.test(targetHtml)) {
var matches = targetHtml.match(re);
var no = (matches.length == 1) ? 'corrispondenza' : 'corrispondenze';
var finds = (matches.length == 1) ? 'trovata' : 'trovate';
//console.log("targetHtml",)
$('#genera').html(targetHtml.replace(re, '<span class="highlight">' + matches[0] + '</span>'));
} else {
$('<p/>').text('Termine non trovato.').appendTo($(this));
}

[CODE]

Solo che mi succede che ad esempio se la parola si trova all' interno del tag img nel suo "alt" mi incasina tutto perchè inserisce dentro alt="parola" il tag diventando alt=<span>ecc.. , ho bisogno quindi di evitare che cerchi all' interno del tag img ad esempio, c' è un modo per farlo con jquery?

Un altro problema è che se ad esempio le parole sono 2 e una è in grassetto e l' altra no non me la sottolinea perchè in mezzo c è il tag <strong>, come posso fare senza distruggere tutto il testo a far sì che sottolinei le parole?