Javascript jquery:删除元素后的所有内容

Javascript jquery:删除元素后的所有内容,javascript,jquery,html,Javascript,Jquery,Html,我有如下html代码: <li> <a href=''>Example</a>&nbsp;<a href='' class='sub'>Edit</a>&nbsp;<a href='' class='sub'>Delete</a> </li> 但第二行看起来太像黑客了。有更好的办法吗 您可以这样做: $('li a:first-child').each(function() {

我有如下html代码:

<li>
<a href=''>Example</a>&nbsp;<a href='' class='sub'>Edit</a>&nbsp;<a href='' class='sub'>Delete</a>
</li>

但第二行看起来太像黑客了。有更好的办法吗

您可以这样做:

$('li a:first-child').each(function() {
    $(this).parent().html(this);
});​
这将清除这些元素上的父元素(包括事件处理程序),然后放置第一个
。将DOM元素传递给是为了和,只是让它更简洁一点。

这怎么办

$('li').html($('li').find("a:first").html())
编辑1:以上代码错误。请尝试以下操作:

$('li').find("a:first").appendTo($('li').html(""));

谢谢Nick。

最简单的方法可能是将要删除的编辑/删除链接包装在div(或您选择的其他元素)中,然后一次将其全部删除。第一行代码就快到了

您可以执行以下操作,而不是在每个锚点上放置class='sub':

<li>
<a href=''>Example</a><div class='sub'>&nbsp;<a href=''>Edit</a>&nbsp;<a href=''>Delete</a></div>
</li>
正如您当前所做的,它应该删除div和空格。

您可以尝试:

$('li').html($('li a:first-child'));

这会将HTML附加到锚点中,而不是保留锚点:)您确定吗?我已经测试过了,它可以工作了$('li').find(“a:first”).html()获取锚的html。答案应该是给出示例的代码。是的,在这里试试:注意“示例”不再是链接:)谢谢,你说得对。。。我又把它放在一行:)。但是这次它起作用了。谢谢你给JSFIDLE的链接,看起来是一个非常有用的网站!这是一个很好的建议,我可能最终不得不这样做,但现在我更喜欢使用尽可能少的额外html。根据麦克的建议,我甚至可以摆脱“.sub”类。
$('li').children(".sub").remove(); 
$('li').html($('li a:first-child'));