//创一个元素div做为容器
tmp = tmp || fragment.appendChild(context.createElement("div"));
...
jQuery.merge(nodes, tmp.childNodes);
大神这里还遗漏的有代码。
通过jQuery.merge(nodes, tmp.childNodes)把碎片中的子节点添加到nodes中,但fragment没有清除子节点。如果把fragment附加到dom节点,会保留这些未清楚的子节点。
应该在后面加上:
tmp = fragment.firstChild;
tmp.textContent = "";
tmp = tmp || fragment.appendChild(context.createElement("div"));
...
jQuery.merge(nodes, tmp.childNodes);
大神这里还遗漏的有代码。
通过jQuery.merge(nodes, tmp.childNodes)把碎片中的子节点添加到nodes中,但fragment没有清除子节点。如果把fragment附加到dom节点,会保留这些未清楚的子节点。
应该在后面加上:
tmp = fragment.firstChild;
tmp.textContent = "";
2016-10-08
最新回答 / Aero_Jin
只要不是单闭合标签, 都会增加结束标签, 例如:elem = "<div>123";用这段正则替换后, 就变成"<div>123</div>", 这是一种容错机制.
2016-09-30
最新回答 / Aero_Jin
正常应该是会去掉的, 这里应该是个不完整的例子, 例子的作用主要还是让你理解思路, 你可以看下下一节domManip(下), 这一节中是这么处理的: <...code...>
2016-09-30
请大家学习的注意这两个地方、很容易忽略:
1.上面的方法改掉了TYPE其实就是让脚本无法解析(不是报错)、js会忽略
2.上面关注的正则,是为了兼容XML进行的处理、而上文是在javascript中运行所以替换掉了
OK!
1.上面的方法改掉了TYPE其实就是让脚本无法解析(不是报错)、js会忽略
2.上面关注的正则,是为了兼容XML进行的处理、而上文是在javascript中运行所以替换掉了
OK!
2016-09-25
为大家解释几点:
parentEles[0].ownerDocument //就是Document文档对象
fragment.firstChild //获取创建成功的DOM、也就是我们需要添加的对象
context.createElement("div") //不要误解,就是普通的创建一个元素 一般:document.xxx 或者 $(...)
fragment.appendChild() //返回创建的元素,也就是DIV
if (first){callback.call(parentEles, first);} //如果创建成功,写入文档
自此:本页内容就是这些!
parentEles[0].ownerDocument //就是Document文档对象
fragment.firstChild //获取创建成功的DOM、也就是我们需要添加的对象
context.createElement("div") //不要误解,就是普通的创建一个元素 一般:document.xxx 或者 $(...)
fragment.appendChild() //返回创建的元素,也就是DIV
if (first){callback.call(parentEles, first);} //如果创建成功,写入文档
自此:本页内容就是这些!
2016-09-21
规避WebKit checked属性
// We can't cloneNode fragments that contain checked, in WebKit
if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) {return this.each(function() {jQuery(this).domManip( args, table, callback, true );});}
// We can't cloneNode fragments that contain checked, in WebKit
if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) {return this.each(function() {jQuery(this).domManip( args, table, callback, true );});}