2017-03-23 2 views
2

Ich habe HTML-Zeichenfolge in JS, wo ich das span-Element aus ihm entfernen möchten.JavaScript String Ersetzen span Element durch leere Zeichenfolge

HTML= '<div>test</div><p>test</p><span>test</span>'; 

I unten JavaScript Betrieb haben versucht, aber nicht funktioniert,

HTML = HTML.replace('/<span class="removedata">X</span>/g',"");                                        

Any Eingänge:

var HTML= '<div>test</div><p>test</p><span class="removedata">X</span><span>test</span><span class="removedata">X</span>'; 

Nach Span zu entfernen, sollte es aussehen werden?

+0

Muss es mit einem regulären Ausdruck sein? –

+1

Entfernen von span von DOM ist auch eine Option anstelle von Regex. – dfsq

+1

Werfen Sie einen Blick hier http://stackoverflow.com/questions/18464432/how-to-remove-span-tag-from-the-string – geo

Antwort

1

Der Schrägstrich / ist ein Sonderzeichen in regular expressions und Sie müssen es \/ entkommen:

var html = '<div>test</div><p>test</p><span class="removedata">X</span><span>test</span><span class="removedata">X</span>'; 
 
var newHtml = html.replace(/<span class="removedata">X<\/span>/g, ''); 
 

 
console.log(newHtml); // "<div>test</div><p>test</p><span>test</span>"

+0

Das hat wie erwartet funktioniert. Danke. –

1

Sie könnten versuchen, es mit RegExp zu tun.

var str = '<div>test</div><p>test</p><span class="removedata">X</span><span>test</span><span class="removedata">X</span>', 
 
    str2 = str.replace(/<span class="removedata">X<\/span>/g, ''); 
 
    console.log(str2);

0

Wenn Sie auf einem regulären Ausdruck bestehen, könnten Sie

HTML = HTML.replace(/<\/?span class="removedata".[^>]*>/g, ''); 
+1

Das hat nicht funktioniert. Ich muss nicht alle Bereiche entfernen, sondern die Klasse removedata. –

+0

Ich habe meine Antwort aktualisiert. –

0

var HTML= '<div>test</div><p>test</p><span class="removedata">X</span><span>test</span><span class="removedata">X</span>'; 
 

 
var htmlObj = $(HTML); 
 
htmlObj = htmlObj.not(".removedata"); 
 

 
var htmlString = $('<div>').append(htmlObj).html(); 
 
console.log(htmlString);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

Sie können den Text ersetzen, aber ein anderer Ansatz wäre auch möglich:

Irgendwann Sie den Inhalt HTML auf das DOM hinzugefügt werden -Baum. Wenn Sie das getan haben, können Sie auch die "Entfernung" erreichen, indem Sie Folgendes tun:

var elements = document.getElementsByClassName("removedata"); 
elements[0].parentNode.removeChild(elements[0]); 
0

Die unten könnte funktionieren.

var html = '<div>test</div><p>test</p><span class="removedata">X</span><span>test</span><span class="removedata">X</span>'; 
html = html.replace(/<span class="removedata">X<\/span>/g, ''); 
console.log(html); 

Sie können die folgende Website verwenden, wenn Sie Regex neu sind.

https://regex101.com/

Verwandte Themen