【问题标题】:jQuery append() - duplicate appendsjQuery append() - 重复追加
【发布时间】:2010-12-07 09:59:47
【问题描述】:

在我将类似 div 的内容附加到 html 正文的场景中,我注意到 jQuery 足够聪明,可以防止将对象附加两次。

所以例如下面的代码:

$("body").append("<div id=\"divDialog\" title=\"Custom Dialog\">My dialog question?</div>");
$("#divDialog").dialog();

无论我调用多少次上面的方法divDialog都只会被创建一次(据我所见)。

如果您没有在紧密循环中运行,那么允许多次调用 append 方法有什么问题吗?这会导致任何问题吗?

我假设在一个循环中,这将是要避免的事情......

【问题讨论】:

  • 我想一定是$.fn.dialog()在做一些特别的事情;尝试运行 $("body").append("&lt;div id=\"divDialog\" title=\"Custom Dialog\"&gt;My dialog question?&lt;/div&gt;"); 几次,你会发现它每次都被创建(#divDialog 选择器只会找到第一个)。
  • 顺便说一句 - 如果将所有内容都用单引号括起来,则不必转义双引号,反之亦然。
  • @Erik Reppen:谢谢我知道。我更喜欢逃避。
  • @Chris Morgan:我的测试不同意你的看法。当指定一个 ID 时,jQuery 似乎拒绝创建多个实例。如果我只指定一个类,它会创建多个 div。 (我已经尝试过使用选择器和查看原始 HTML)有人可以确认一下吗?第一个答案似乎表明我是正确的......

标签: javascript jquery css jquery-selectors


【解决方案1】:

不,将它放在一起运行完全没有问题。我没有统计数据支持我,但根据经验,我可以告诉你,对性能的影响很小。例外情况是,如果您像在循环中一样一遍又一遍地使用它,但您说情况并非如此。

如果两者都同样简单,更好的方法是连接所有 HTML 以追加并立即执行。

【讨论】:

    猜你喜欢
    • 2015-08-03
    • 2016-08-17
    • 2014-12-31
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2011-11-20
    相关资源
    最近更新 更多