我习惯写作$('<div>')
。
但是今天我看到了 john-resig 关于高级 jquery 的介绍,他使用了以下语法$('<div/>')
。
http://loft.bocoup.com/john-resig-advanced-jquery/
对我来说,它们似乎产生了相同的输出。
$('<div>')
我的问题是:和之间有什么区别
$('<div/>')
吗?
我习惯写作$('<div>')
。
但是今天我看到了 john-resig 关于高级 jquery 的介绍,他使用了以下语法$('<div/>')
。
http://loft.bocoup.com/john-resig-advanced-jquery/
对我来说,它们似乎产生了相同的输出。
$('<div>')
我的问题是:和之间有什么区别
$('<div/>')
吗?
不,jQuery 会将这些语句标准化为完全相同的。
在一些早期版本的 jQuery 中,它碰巧<div>
实际上比任何原因都快。<div/>
我还不知道,如果这仍然适用。
http://jsperf.com/jquery-constructor-performance
似乎这个错误/功能不再正确。
<div>
, <div/>
, <div></div>
, 甚至<div/></div>
(是的,这个只会创建一个元素)都触发了singleTag
正则 rexpression ,这使得 jQuery 调用document.createElement("div")
. 它根本没有传递给任何 html 解析器。
这是您可以使用的正则表达式,如果它返回 true,它将是document.createElement'd
var rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/;
<div>
是一个开始标签。<div/>
是一个自闭合标签。但是,在这种情况下,没有区别。