使用jQuery删除附加的html?

Posted

技术标签:

【中文标题】使用jQuery删除附加的html?【英文标题】:Removing appended html using jQuery? 【发布时间】:2010-11-19 03:43:30 【问题描述】:

使用 jquery,我目前在单击事件上将 html 附加到 div。下面的代码允许我只淡入 div 的附加部分:

var html = "..";
$('<div></div>').appendTo("#id").hide().append(html).fadeIn('slow');

这部分效果很好。但是我以后怎样才能只删除(淡出)附加的部分?我尝试通过将 html prior 存储到附加内容来破解它,然后简单地隐藏所有内容并显示存储的 html。但是,当同一页面上的多个 div 重复使用相同的过程时,这不起作用(这似乎是糟糕的实现)。有什么好办法吗?

只是为了说明我为什么需要这个:想想一个博客类型的页面,页面上的每篇文章都有几个 cmets,默认情况下只显示 x 数量:click 事件获取剩余的 cmets 并显示它们,然后再次切换按钮会删除附加的 cmets 并将其发送回原始状态。

【问题讨论】:

【参考方案1】:

empty() 始终是一个选项

jQuery('#main').empty();

【讨论】:

【参考方案2】:

看看empty() 函数。

它可能会更好地解决问题。这是链接http://api.jquery.com/empty/

【讨论】:

【参考方案3】:

我只是用 '.html()' 设置和清除 html ...

--编辑

为了更清楚,有一个专门用于添加这些 cmets 的区域:

<div id='commentarea1'></div>

等等

【讨论】:

我不关注...我需要将 html 附加到已经存在的 html 块中...然后仅删除已附加的部分 创建一个没有任何内容的div;在那里写下你的内容,然后将其清除(或真正隐藏)。 如此简单...不知道为什么我没有想到这样做...谢谢!【参考方案4】:

试试:

var html = "..";
$('<div></div>').appendTo("#id").hide().append(html).fadeIn('slow').addClass('appended');

后来

$('#id .appended').fadeOut('slow'); // or whatever you want to do.

【讨论】:

【参考方案5】:

问题不是很清楚,但说您默认显示 5 个 cmets,然后显示 x 多个 cmets。要恢复原来的 5 条评论默认状态,您可以删除索引大于 4(从零开始)的所有 cmets。

以下假设每个评论都位于其自己的具有类评论的 div 中。

$('#id>div.comment:gt(4)').remove();

【讨论】:

以上是关于使用jQuery删除附加的html?的主要内容,如果未能解决你的问题,请参考以下文章

删除后使用jQuery重新排序附加的元素编号

Jquery:在div的悬停时附加一个类并在不悬停时删除

当我删除对象时,jQuery 是不是会自动从对象中删除附加的处理程序?

在 jQuery 中附加外部 PHP 文件

使用 jQuery 过滤复选框

如何使用 javascript/jquery 将大型 html 块附加到刀片文件?