$('<div>')和$('<div>')</div> </div>之间的差异

时间:2012-12-12 17:09:15

标签: javascript jquery html

  

可能重复:
  $(‘<element>’) vs $(‘<element />’) in jQuery

我习惯写$('<div>') 但今天我看到john-resig使用以下语法$('<div/>')的高级jquery的演示文稿。
http://loft.bocoup.com/john-resig-advanced-jquery/

对我来说,他们似乎产生了相同的输出。

我的问题是:两者之间是否存在一些差异 $('<div>')$('<div/>')

3 个答案:

答案 0 :(得分:7)

不,jQuery会将这些语句规范化为完全相同的。


在某些早期版本的jQuery中,由于某种原因,<div>实际上更快而不是<div/>。我还不知道,如果仍然适用。

http://jsperf.com/jquery-constructor-performance

似乎这样错误/功能不再是真的。

答案 1 :(得分:5)

<div><div/><div></div>,甚至<div/></div>(是的,这只会创建一个元素)都会触发singleTag常规重复播放让jQuery调用document.createElement("div")。它根本没有传递给任何html解析器。

这是你可以玩的正则表达式,如果它返回true,它将是document.createElement'd

var rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/;

答案 2 :(得分:4)

<div>是一个开头标记。 <div/>是一个自动结束标记。然而,在这种情况下,没有区别。