2016-06-21 3 views

ответ

5

Да, это называется unwrap. Вы называете это на узлах, которые вы хотите разворачивать, так что в вашем случае, мы бы назвали его $(".emphasis").contents():

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

Пример:

// 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>

Пример, когда являются элементами в пределах диапазона:

// 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

Это хорошее решение – grimmdude

+0

Thumbs up для оставления любых HTML-тегов после использования 'unwrap()'! – gtilflm

3

Попробуйте

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

Это будет работать для примера OP, но будет удалять любые элементы внутри диапазона, если они есть. –

+1

@ T.J.Crowder: Хороший звонок. Мне нужно было бы сохранить теги в '', которые вынимаются. Любые альтернативы приходят на ум? – gtilflm

+0

'html()' вместо 'text()' –

0

JavaScript:

var content = document.getElementByClassName("emphasis").innerHTML; 
Смежные вопросы