我习惯写$('<div>')
但今天我看到john-resig使用以下语法$('<div/>')
的高级jquery的演示文稿。
http://loft.bocoup.com/john-resig-advanced-jquery/
对我来说,他们似乎产生了相同的输出。
我的问题是:两者之间是否存在一些差异
$('<div>')
和$('<div/>')
?
答案 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/>
是一个自动结束标记。然而,在这种情况下,没有区别。