课程
/前端开发
/jQuery
/jQuery源码解析(架构与依赖模块)
/[^#].*/.exec(selector)[0] 这部分怎么理解呢?
2016-06-15
源自:jQuery源码解析(架构与依赖模块) 1-6
正在回答
[]中的^表示‘非’的意思,也就是不要#。整个正则表示去掉了#的其他字符。比如传入的是‘#first’,document.getElementId('first')
首先selector是传入的参数,就是jquery中$("#first")中的#first。因为document.getElementById()传入的参数没有前面的#,例如一个div<div id='frist'>,原生的javascript使用document.getElementById('first'),在jquery中是$('#first'), /[^#].*/.exec(selector)[0]就是为了帮你去掉那个#号。再说一下exec(),它的返回值是一个类数组,类数组的第一项保存着刚匹配到的字符。
//中间的数组符号是什么意思啊?能详细介绍下么?
我记得^前面好像没有其他字符了啊?
[^#]:以#号开头;
. :一个元字符,匹配除了换行符以外的任意字符。
* :同样是元字符,不过它代表的不是字符,也不是位置,而是数量——它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配。
慕尼黑3821393
qq_一直很安静_8
举报
由浅入深地剖析jQuery库的设计与实现,揭开框架背后的秘密
1 回答context 和selector
4 回答到底生成render树的过程,是为每个DOM元素查找匹配的selector,还是为每个selector查找匹配的DOM元素呢?
1 回答请问function( selector, context ){}是两个参数,为啥在使用时传入一个参数可以解析
2 回答选择器选择ID不是只有一个的吗?用[0]和不用[0]一样呀,有什么意义吗
1 回答看不懂,defineProperty第二个参数为什么是0