2016-06-21 30 views
0

Gibt es eine jQuery-Funktion (oder einfach nur Javascript) um <span class="emphasis">15.9</span> in 15.9 zu verwandeln?jQuery Entfernen Sie HTML-Element, aber lassen Sie den Inhalt

Grundsätzlich möchte ich das <span> Tag entfernen, aber verlassen Sie das Zeug, das in dem Tag ist.

+0

https://api.jquery.com/unwrap/ kann von Nutzen sein. –

Antwort

5

Ja, es unwrap genannt wird. Sie rufen es auf den Knoten Sie, so in Ihrem Fall auspacken wollen, würden wir es auf $(".emphasis").contents() nennen:

$(".emphasis").contents().unwrap(); 

Beispiel:

// Show the content of the container prior to unwrapping 
 
console.log("before unwrapping: " + $("#container").html()); 
 

 
// Unwrap 
 
$(".emphasis").contents().unwrap(); 
 

 
// After unwrapping 
 
console.log("after unwrapping: " + $("#container").html());
<div id="container"> 
 
    <span class="emphasis">15.9</span> 
 
</div> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

Beispiel für, wenn es sind Elemente innerhalb der Spanne:

// Show the content of the container prior to unwrapping 
 
console.log("before unwrapping: " + $("#container").html()); 
 

 
// Unwrap 
 
$(".emphasis").contents().unwrap(); 
 

 
// After unwrapping 
 
console.log("after unwrapping: " + $("#container").html());
<div id="container"> 
 
    <span class="emphasis"><em>15</em>.9</span> 
 
</div> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

+0

Dies ist eine gute Lösung – grimmdude

+0

Daumen hoch für das Verlassen von HTML-Tags nach der Verwendung von 'unwrap()'! – gtilflm

3

Versuchen

$('span.emphasis').replaceWith($('span.emphasis').text()); 
+1

Das wird für das Beispiel des OP funktionieren, aber würde irgendwelche Elemente innerhalb der Spannweite wegblasen, wenn es einige gab. –

+1

@ T.J.Crowder: Guter Anruf. Ich müsste Tags innerhalb der '' behalten, die herausgenommen werden. Irgendwelche Alternativen in den Sinn kommen? – gtilflm

+0

'html()' anstelle von 'text()' –

0

JavaScript:

var content = document.getElementByClassName("emphasis").innerHTML; 
Verwandte Themen