首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jQuery删除和添加新html的正确方法

使用jQuery删除和添加新html的正确方法
EN

Stack Overflow用户
提问于 2012-06-02 04:39:15
回答 4查看 340关注 0票数 5

我在另一个元素中有两个div元素。有时,从用户交互性中删除这两个项目,并放置两个新元素。

首先删除已有的元素合适吗?或者只是覆盖html?或者这有什么关系呢?

代码语言:javascript
运行
复制
$('#item1').remove();
$('#item2').remove();
$('#itemWindow').append(newItem1);
$('#itemWindow').append(newItem2);

或者简单地说

代码语言:javascript
运行
复制
$('#itemWindow').html(newItem1);
$('#itemWindow').append(newItem2);

一个是较少的代码,但是否应该删除该项目?这些项目没有任何监听程序,但是如果它们有监听程序,这会有什么不同吗?

我是一名深入研究JS和jQuery的ActionScript开发人员。在AS中,如果存在任何侦听器,最好先删除该项以切断与对象的任何联系,以便进行正确的内存收集。这些规则是否适用于JS和jQuery?

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-02 04:42:42

它们没有区别。所以你可以继续使用第二种方法。就像你使用这个

代码语言:javascript
运行
复制
$('#itemWindow').html(newItem1);

$('#item1')$('#item2')将被替换。因此,您可以跳过手动删除这些文件。

正如@glavi方法在注释中提到的那样,如果你查看这里的https://github.com/jquery/jquery/blob/master/src/manipulation.js#L213源代码中的html方法的定义,你会发现它的末尾有以下几行

代码语言:javascript
运行
复制
 if ( elem ) {
    this.empty().append( value );
 }

其中,在本例中,elem为真。因此,元素将是emptied,然后新元素将是appended

如果它们有监听程序,那么您必须以某种方式绑定监听程序,以便它可以使用动态添加的元素,如使用$.on

票数 3
EN

Stack Overflow用户

发布于 2012-06-02 04:43:16

$('# item1 ').remove();将删除id为item1的元素

$('# item1 ').html(newItem1);将在id为item1的元素中设置html

票数 0
EN

Stack Overflow用户

发布于 2012-06-02 04:47:05

如果您想要具体说明您实际要删除的内容,比如您有一个元素需要删除,而另一个元素不需要删除,那么我建议使用第一种方法。如果您打算每次都替换所有内容,那么可以随意使用或,唯一的问题是哪个对您来说更具可读性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10857061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档