6

可能重复:
jQuery 中的 $('<element>') 与 $('<element />')

我习惯写作$('<div>')
但是今天我看到了 john-resig 关于高级 jquery 的介绍,他使用了以下语法$('<div/>')
http://loft.bocoup.com/john-resig-advanced-jquery/

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

$('<div>')我的问题是:和之间有什么区别 $('<div/>')吗?

4

3 回答 3

7

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


在一些早期版本的 jQuery 中,它碰巧<div>实际上比任何原因都快。<div/>我还不知道,如果这仍然适用。

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

似乎这个错误/功能不再正确。

于 2012-12-12T17:09:55.443 回答
5

<div>, <div/>, <div></div>, 甚至<div/></div>(是的,这个只会创建一个元素)都触发了singleTag正则 rexpression ,这使得 jQuery 调用document.createElement("div"). 它根本没有传递给任何 html 解析器。

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

var rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/;
于 2012-12-12T17:14:13.873 回答
4

<div>是一个开始标签。<div/>是一个自闭合标签。但是,在这种情况下,没有区别。

于 2012-12-12T17:10:16.063 回答