我看到人们用两种不同的方式在jQuery中创建HTML元素:
$('<element>')
Run Code Online (Sandbox Code Playgroud)
和
$('<element />')
Run Code Online (Sandbox Code Playgroud)
我很好奇哪一个"更正确".我看到第一个显而易见的优点是只是简单地输入.根本使用哪一个会有所不同吗?
Rob*_*b W 27
/* Line 30*/
rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
/* Line 121 */
// If a single string is passed in and it's a single tag
// just do a createElement and skip the rest
ret = rsingleTag.exec( selector );
Run Code Online (Sandbox Code Playgroud)
以下是等效的:
<a></a><a /><a>技术上$('<element></element>')更正确,因为/在HTML5中删除了使用自闭关标签,但它完全没有区别,因为该语句由jQuery解析.如果有的话,只是使用$('<element>') 可能实际上稍微快一点,因为它更少的字符阅读.哪个应该跳过一些Regex条件.
更重要的是,如果你正在寻找最快可能使用jQuery方式:
var temp = new jQuery.fn.init();
temp[0] = document.createElement('element');
temp.length = 1;
Run Code Online (Sandbox Code Playgroud)
这个版本是最快的,因为它跳过jQuery()包装"new jQuery.fn.init()",并且不传递任何参数,以便它立即返回一个新的jQuery对象.它会跳过许多条件和自动防故障语句,如果您已经确切知道自己要做什么,那么这些语句是不必要的.
或略短:
var temp = $(document.createElement('element'));
Run Code Online (Sandbox Code Playgroud)
这个版本稍慢,但更容易阅读,更整洁.它仍然会跳过用于解析的大块代码,传递的字符串是什么.相反,jQuery可以自动知道我们在这里使用节点.
参考
HTML5不允许"自我关闭"标签
Google:html5自我关闭标签
jsperf
| 归档时间: |
|
| 查看次数: |
1096 次 |
| 最近记录: |