2

我的问题很简单,可能是主观的。大多数情况下,当我操作 DOM 时,我会创建 HTML 文本并将其附加到元素中。有时,如果数据足够小,我会创建元素并将它们附加到父元素。

$("#p").html("<p>My Paragraph</p>");

或者

$("<p/>").html("My Paragraph").appendTo("#p");

应该使用哪一个,为什么?

4

4 回答 4

3

jQuery 有一种更优雅的方式来创建元素:

var $p = $("<p/>", {
    html: "My paragraph"
}).appendTo("#p");

创建元素的最大价值在于您可以保存对它们的引用,然后根据需要使用它们。无需使用$()选择器再次找到它们。

另一方面,如果您的 HTML 非常简单,并且您以后不需要访问任何这些元素,则可以使用该.html()方法。而且速度稍快。

于 2012-09-11T16:33:08.707 回答
1

我认为使用第一个会更好,因为它取决于您页面的结构,而第二个与更有可能更改的内容有关。我不知道性能,如果那是你所问的更多。

于 2012-09-11T16:31:45.557 回答
0

以我的拙见,我只是不喜欢第二种选择的外观。从语义上讲,您永远不会<p/>在标记中看到任何地方,因此使用它感觉很奇怪(即使我知道它在添加到 DOM 之前就已填充)。第一个例子看起来更干净。

纯粹是一个偏好问题,我强烈主张代码可读性优于优化,直到您真正感觉到性能受到影响。

于 2012-09-11T16:39:59.197 回答
0

好像

$("#p").html("<p>My Paragraph</p>");

是最快的方法。
http://jsperf.com/jquery-append-order

于 2012-09-11T16:40:58.040 回答