Javascript 如何使用jQuery仅删除标记?
我想使用jQuery删除span, 我已经尝试了Javascript 如何使用jQuery仅删除标记?,javascript,jquery,css,Javascript,Jquery,Css,我想使用jQuery删除span, 我已经尝试了.unwrap()但它不工作 <div> <ul> <li><a href="#"><span>link</span></a></li> <li><a href="#"><span>link</span></a></li> </ul> </div>
.unwrap()代码>但它不工作
<div>
<ul>
<li><a href="#"><span>link</span></a></li>
<li><a href="#"><span>link</span></a></li>
</ul>
</div>
:)
或
如果只想卸下包装,请尝试
var buffer = $('li').find('span').text();
$('li').find('span').parent().html(buffer);
打开包装应该可以。您可能没有成功选择要展开的范围。您可以尝试以下代码,这些代码将成功选择该范围:
$("li a span").unwrap()
你的问题有点不清楚你到底想做什么。还不清楚您是在使用选择器还是jQueryAPI方面遇到了问题。为了更好地处理jquery的选择器,我建议您安装和,因为它确实可以帮助您了解所选择的内容 显然,unwrap
不起作用,因为span
s中只有文本节点,而jquery不能很好地处理文本节点。。。但是,这是可行的(如果您确定span
仅包含文本,则也可以使用jQuery.text
而不是jQuery.html
):
$("span").each(function() {
var content = $(this).text();
$(this).remove();
$("a").html(content);
});
编辑:实际上,如果您使用jquery无法直接选择文本节点,那么展开
似乎也可以工作:
$('li a span').contents().unwrap();
您是如何尝试这样做的,为什么它不工作,它在做什么?很可能您的查询是错误的,unwrap()应该可以做到这一点。请提供更多信息!它表明.unwrap()不是一个函数:(我想他想删除“span”-标记而不删除其内容,即展开
(他似乎无法开始工作)哦-我想是的,有点先发制人地使用“使用jQuery删除span”:(
$("li a span").unwrap()
$("span").each(function() {
var content = $(this).text();
$(this).remove();
$("a").html(content);
});
$('li a span').replaceWith($('li a span').html());
$('li a span').contents().unwrap();