如何使用jquery或javascript删除仅使用特定类的所有标记,而不删除html页面内的内容? 例如,必须转换以下内容
<a class="ab">
<ol>
<a class="ab">
<li><a class="ab">
abcde</a>
</li>
<li>
<a class="ab">
12354
</a>
</li>
</a>
</ol>
</a>
进入
<ol>
<li>
abcde
</li>
<li>
12354
</li>
</ol>
我想删除所有带有class= "ab"
的标签,同时保留其中的元素和内容
答案 0 :(得分:4)
使用.replaceWith()
,它简洁明了,可以完美地运作:[ DEMO HERE ]
$("a.ab").replaceWith(function() { return this.innerHTML; });
<强>输出:强>
<ol>
<li>
abcde
</li>
<li>
12354
</li>
</ol>
答案 1 :(得分:2)
您可以尝试replaceWith
jQuery('.ab').each(function(){
jQuery(this).replaceWith(jQuery(this).html());
});
演示
jQuery Api
答案 2 :(得分:1)
打开包装怎么样?
$('a.ab').contents().unwrap();
contents() - 获取匹配元素集中每个元素的子元素,包括文本和注释节点。
unwrap() - 从DOM中删除匹配元素集的父元素,将匹配的元素留在原位。
答案 3 :(得分:0)
试试这个
$('.ab').each(function() {
var val = $(this).html();
$(this).parent().html(val);
$(this).remove();
});
答案 4 :(得分:-1)
您可以使用:
$("a .ab").each(function() {
$(this).remove();
});