【发布时间】:2011-03-02 22:59:29
【问题描述】:
在回答了我的一个问题时,cletus mentioned 在 jQuery 中创建元素时最好使用 direct DOM element creation,而不是 innerHTML。我试着用谷歌搜索它,但我找不到一篇比较好的文章。
我在下面提供了这段代码作为示例,我想知道是否有人可以帮助我以直接 DOM 元素创建形式重写它,希望我之后也能了解其中的区别。
var img = $(this);
img.append('<p class="cap"><a href="'+img.parent().attr('href')+'">'+
img.attr('title')+'</p></a>');
非常感谢。
【问题讨论】:
-
Mohammad:@cletus 也有这个原因:一些浏览器在使用 innerHTML 类型的方法创建标记时异常缓慢,所以我倾向于使用上述方法,它使用 diretc DOM 元素创建.
-
实际上有一个performance tool 可以用来测试各种浏览器。同样,T.J. Crowder 写了一个quick summary 的innerHTML 的优点和缺点。我个人从来没有觉得使用 innerHTML 很舒服,尽管我发现清除 div 的内容比重复删除子节点更快。我很惊讶实际上有充分的理由使用它。 (我不知道为什么我之前发布了这个作为“答案”)
标签: jquery dom comparison innerhtml