我习惯写作$('<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/>是一个自闭合标签。但是,在这种情况下,没有区别。