2013-09-06 7 views
6

Wyglądałem, patrzyłem i patrzyłem, ale nie mogłem nic na ten temat znaleźć. Więc powiedzmy, że mam ten ciąg ...Usuń znaczniki <script> z ciągu wraz z zawartością między nimi.

var str = '<script>blah blah blah</script><a>...</a><div>...</div><p>...</p>'; 

Muszę usunąć znaczniki skryptu z ciągu wraz z całą zawartością między tagami. Po usunięciu tagu skryptu muszę go dołączyć do obszaru tekstowego. Jak na świecie robię to z jQuery?

Każda pomoc będzie bardzo ceniona!

Odpowiedz

10

ponieważ nikt inny nie będzie pisać proste i niezawodnie pracujących rutynę, chyba będzie:

function noscript(strCode){ 
    var html = $(strCode.bold()); 
    html.find('script').remove(); 
return html.html(); 
} 


alert( noscript("<script>blah blah blah</script><div>blah blah blah</div>") ); 
//shows: "<div>blah blah blah</div>" 
+0

Pracował jak mistrz! Musiałem również zrobić to w innym obszarze kodu dla innego obszaru tekstowego, więc funkcja była dobrym połączeniem! Dzięki, – barrettathome

1

Spróbuj tego: -

var str= "<script>blah blah blah</script><div>blah blah blah</div>"; 
var html = $(str.bold()); 
html.find('script').remove(); 
+0

gdzie łańcuch pojawia się w kodzie? – dandavis

+0

var html = $ (str.bold()); działa lepiej, ponieważ nie polega na posiadaniu zewnętrznego znacznika opakowania ... – dandavis

+0

@dandavis: - Dzięki mate !!! Zaktualizowano to w mojej odpowiedzi !! –

0

Oto skrzypce (https://jsfiddle.net/skoley/9dnmbj3d/) odpowiedzi, które najlepiej działają z kilku innych źródeł, kredyt trafia do nich.

function noscript(strCode){ 
    var html = $(strCode.italics()); 
    html.find('script').remove(); 
return html.html(); 
} 

function noscript_alt(str) 
{ 
var div = $('<div>').html(str); 
div.find('script').remove(); 
str = div.html(); 
return str;} 
Powiązane problemy