jquery选择器源码
1. jquery源码 ,jquery选择器,javascript,正则表达式
quickExpr应该是个二义正则。前半段是:
^[^<]*(<[\w\W]+>)[^>]*$:我猜测意思是一个简单的标签。如$('<div>new Div</div>')匹配的用法。
后半段是:
^#([\w-]+)$:这个显然就是id选择器。->getElementById
注意两个正则用了|来分隔二义,所以你这里的匹配不成功是正常的。
jquery应该是根据这个quickExpr来判断
if(match[1]) createNewfragment();....
else if(match[2]) getElementById();
当然这只是个人猜测,没有细读jquery源码。仅做参考
2. JQuery选择器
+在JS中是连接符的意思,也可以被作为计算符使用,比如a=1+1,那么a=2,这儿就是计算符,a="1"+"1",那么a=11,这儿就是连接符。
这句话的意思是:
执行JQ代码,$()
选择id为rotmenu子节点的li中的nth-child?节点。
而nth-child后面的i就是前面的?,它是一个数字,但不知道是多少,应该在前面语句有循环,i会由0开始往上递增。
因为在$()中的id name等,是字符类型,要用引号。所以在#ro...前就有个引号。
到了(这儿,又一个引号,说明这一段字符串完成了。
后面跟着一个+是指把前面后面的语句连起来
再后面跟一个i,这个i是一个变量,它应该是由循环生成的,比如for。
再后面再跟一个+继续连接。
后面再')'完成此语句。
3. 如何正确阅读jquery源码和jquery插件源码
1. jQuery 里面有很多东西是出于兼容性,历史遗留。
比如 .ready() 之类的函数,为什么会很scroll 有关,那是为了兼容某些ie。这种代码对于编程思想来说不仅没用,而且是杂音,你要筛选出来就得了解这段代码的变动,费心费力得不偿失。
2. jQuery 里面的代码不一定是最优的,例如事件委托,每一次事件触发都要调用选择器,实际上是效率很低的。但是我又比较懒,没有提交patch。
3. jQuery 实际上很容易写出来一个 barebone alternative,在使用的过程中多想,多思考多总结就可以了。
4. jQuery 这类框架里真正有思维挑战性的东西不多,一半以上是堆代码而已,剩下的一点价值在于架构、抽象、扩展能力。
5. 我有一句话与所有的同行分享:工程师让需求成为现实,优秀工程师化复杂为简单,顶尖工程师变不可能为可能;架构师掌握现在,优秀架构师展望未来,顶尖架构师创造时代。
jQuery 的设计目的是,让前端工程师的工作更简单更轻松,但它并不适合所有的前端工程师,假如你的目标是成为优秀架构师、顶尖架构师的话,你在jQuery里也看不清未来。
4. 关于jquery选择器的问题。代码如下。
哦,这个其实你测试一下就知道了,我刚试过,你这样写是没问题的
如果$(this).parents("#textHolder") 这个不包含ID为textHolder的HTML元素的话,container是为0的,因为parents()返回的是一个元素集合,既然是集合,肯定都有length这个属性的,所以container.length不可能会只为1的
5. jquery选择器的问题
table.tab-query:选择 class 为 tab-query 的 table(表格)
:text[name$=Time]:选择 name 以 Time 结尾的 text input
.attr("readonly", true):设置 readonly 属性为 true (即设置 只读)
.datepick():在此元素上调用日期选择函数
何在一起就是
在【class 为 tab-query 的 table】下查找所有【name 以 Time 结尾的 text input】,将其【设置为只读】,并且调用【datepick 日期选择函数】
6. jQuery选择器案例
$(document).ready(function() { $('table tr:not(:first)').each(function() { $(this).children('td:not(:first)').hover(function() { $(this).css('color', 'red'); }, function() { $(this).css('color', 'black'); }).click(function() { alert($(this).html()); }); }); });
7. jquery选择器有几种
1、jquery的选择器有9种类型
(1)基本
#id
element
.class
selector1,selector2,selectorN
(2)层次选择器:
ancestor descendant
parent > child
prev + next
prev ~ siblings
(3)基本过滤器选择器
:first
:last
:not
:even
:odd
:eq
:gt
:lt
:header
:animated
(4)内容过滤器选择器
:contains
:empty
:has
:parent
(5)可见性过滤器选择器
:hidden
:visible
(6)属性过滤器选择器
[attribute]
[attribute=value]
[attribute!=value]
[attribute^=value]
[attribute$=value]
[attribute*=value]
[attrSel1][attrSel2][attrSelN]
(7)子元素过滤器选择器
:nth-child
:first-child
:last-child
:only-child
(8)表单选择器
:input
:text
:password
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden
(9)表单过滤器选择器
:enabled
:disabled
:checked
:selected
8. jquery源码中选择器是怎么实现的
jquery官方中没有类选择器这一说,所以自然不会存在。只是编程人员用到了选择类方法的时候就叫他类选择器了
9. jquery选择器
$(function(){
$("#showimg ul li img").each(fucntion(
$(this).mouseover(function(){
alert($(this).attr("src"));
});
));
})
大哥,我就不明白了,你一点都不懂,你用Jquery干嘛?