我想使用jQuery删除span,
我试过了.unwrap();
,但它没有用。
<div>
<ul>
<li><a href="#"><span>link</span></a></li>
<li><a href="#"><span>link</span></a></li>
</ul>
</div>
答案 0 :(得分:21)
显然,unwrap
不起作用,因为span
内部只有文本节点,jquery也不能很好地处理文本节点......但是这样做(你也可以使用{如果您确定jQuery.text
仅包含文字,则代替jQuery.html
:
span
编辑:实际上,如果您使用jQuery.contents
来解决jquery无法直接选择文本节点的问题,$('li a span').replaceWith($('li a span').html());
似乎也可以正常工作:
unwrap
答案 1 :(得分:3)
$('li').find('span').remove();
或
$('li').find('span').detach();
如果您只想删除包装,请尝试
var buffer = $('li').find('span').text();
$('li').find('span').parent().html(buffer);
答案 2 :(得分:0)
展开应该有效。您可能无法成功选择要展开的跨度。您可以尝试以下代码,该代码应成功选择该范围:
$("li a span").unwrap()
从你的问题中有点不清楚你到底想要做什么。目前还不清楚你是否遇到了选择器或jquery api的问题。为了更好地处理jquery的选择器,我建议你安装firebug和firequery,因为它可以真正帮助你理解你所选择的内容。
答案 3 :(得分:0)
$("span").each(function() {
var content = $(this).text();
$(this).remove();
$("a").html(content);
});
答案 4 :(得分:-1)