为了账号安全,请及时绑定邮箱和手机立即绑定
jquery克隆确实代码量大,看了一遍有点蒙圈
难到不是? nextElementSibling 和 previousElementSibling ?
function parents(elem) {//elem 当前元素
var matched = [];// 翻译=>匹配
while ((elem = elem['parentNode']) && elem.nodeType !== 9) {/*循环 1,给elem 赋值为其父节点2,判断 如果 elem不等于根节点Document继续循环 */if (elem.nodeType === 1) { matched.push(elem);} /* 3,如果elem nodeType 全等于 Element 将elem push 进匹配数组*/} return matched;
}
看完这一章,知道什么才叫蒙B
这是标签联动的实现原理吗
@ico_凌 .....哎 逗比
模模糊糊看不懂!
// Descend through wrappers to the right content
// 因为warp被包装过
// 需要找到正确的元素父级
j = wrap[0];
while (j--) {
tmp = tmp.lastChild;
}
这段代码什么意思 为什么感觉看不懂
作为新人的我实在没看懂,太吃力了,示例代码用了太多跟本节课内容不想关的内容,不适合新人
while循环有什么作用吗?不理解啊
为什么要用jQuery.merge(nodes,tmp,childNodes);
nodes变量什么地方使用了?
在线敲?没有控制台调试?你疯了?
有个大坑 #a后有个:,导致styleSheets.cssRules无法识别,我就说纠结了半天怎么都试验不成功
这也太不严谨了,这一章突然加入classname让人感到很迷,既然要filter掉className 那为什么不filter掉id呢?
不用原生的childnodes是为了过滤掉#text元素
//创一个元素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 = "";
课程须知
源码的阅读不是一蹴而就的,需要大家有一定的功底,比如jQuery的基础运用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基础功底,甚至还需要理解常见的设计模式、数据结构等等。当然大家也不要被这些给吓住了,理解,总是需要一种慢慢的学习过程。
老师告诉你能学到什么?
通过本课程的学习,您可以由浅入深地剖析jQuery库的设计与实现。 其中我们围绕的重心: 1、设计理念 2、结构组织 3、接口设计 4、模式运用 5、场景套用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消