jQuery删除HTML元素但保留内容

gti*_*flm 0 html jquery

是否有一个jQuery函数(或只是直接的javascript)<span class="emphasis">15.9</span>变成15.9

基本上我想删除<span>标签,但留下标签内的东西.

T.J*_*der 5

是的,它被称为unwrap.你在要解开的节点上调用它,所以在你的情况下,我们打电话给它$(".emphasis").contents():

$(".emphasis").contents().unwrap();
Run Code Online (Sandbox Code Playgroud)

例:

// 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());
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

跨度中有元素的示例:

// 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());
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)