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