Come faccio a usare JQuery per rimuovere tutti i tag “script” in una stringa di HTML?

Supponiamo che abbia una stringa di codice HTML. Voglio usare JQuery per rimuovere tutti i tag dalla stringa.

Come lo posso fare?

Nota: voglio usare JQuery, non REGEX, per fare questo.

funziona? $(var).find('script').remove();

Questo dovrebbe funzionare per te:

 var stringOfHtml = // your string here $(stringOfHtml).find('script').remove(); 

Per ottenere la nuova stringa con i tag script rimossi:

 var stringOfHtml = "
"; var html = $(stringOfHtml); html.find('script').remove(); var stringWithoutScripts = html.wrap("
").parent().html(); // have to wrap for html to get the outer element

Esempio di JS Fiddle – Ho dovuto usare p invece di script come script ha rotto il violino, lo stesso principio però.

Risposta di lavoro reale qui (si spera)

Ecco una soluzione alternativa al problema dello script, usa replace per scambiare il testo dello script con qualcos’altro (prova e rendilo unico), quindi rimuovi quei nuovi tag e usa di nuovo replace per scambiare di nuovo lo script nel caso in cui lo script venga usato in qualsiasi altro punto del testo. Sì, usa regex, ma non per rimuovere i tag dello script, quindi spero che sia tutto a posto;):

 var stringOfHtml = "

Soluzione JS Fiddle

Esempio di JS Fiddle con testo di script

Vecchia domanda, ma se si sta ancora cercando il modo più semplice per rimuovere gli script da una stringa, provare

 $.parseHTML(string); 

$ .parseHTML () rimuove automaticamente i tag script dalle stringhe.

Modificare:

Questo funziona perché keepScripts ha un valore falso come predefinito. (Riferimento: $ .parseHtml )

 $.parseHTML(data, context, keepScripts) 

Immagino che questo dovrebbe funzionare

 $('script').each(function () { $(this).remove(); }); 

Ecco l’altra soluzione se si desidera rimuovere il tag script da qualsiasi stringa:

var str = "" use var afterstring = str.replace("
Spero che funzionerà per te!