jQueryInAction Reading Note 1.

I becoming love jQuery just because I only know javascript before. (^.^)

document.getElementById("someId")

  ↓

$("#someId")

Seems everything is getting more easier.

 

这是最吸引我的一个jQuery语句:

$("table tr:nth-child(even)").addClass("striped");

 

jQuery包装器(wrapper maybe)

jQuery归根到底还是用来对html元素进行操作的,所以首先要选择html元素,$()被我认为就是包装器,它能够把里面的字符串解析成类似于css样式一样的东西,然后去html页面中选择出来它们。这是第一步,我认为也是最重要的一步。

 

选择器(selector)

p a, 用来指定段落中的链接。$("p a")就会把它们选择出来。

 

jQuery vs. javascript

$("p a") 返回的是一个包装器或者称为包装集,里面包含了被选中的元素, $("p a")[0]返回的对象已经不再是一个jQuery的对象了(我就是这么理解的),而是一个javascript的对象,这个时候jQuery的方法对它就不起作用了,相对应的javascript的方法就好使了。

 

几个接触到的选择器:

$("p:even"), $("p:odd") 分别选中html中序数为偶数的和为奇数的段落。

$("tr:nth-child(1)") 选中所有作为第一个子节点的tr。貌似就是所有table的第一行吧,恩,是因为th也是tr的子节点,跟td一样。

$("tr > td") 选中所有作为tr子节点的td,貌似是废话哩。例子太废了,$("div span")这个比前头的要强一点 (-.-)

 

对下面的javascript小猿比较熟悉,小猿也貌似记得一个页面中写多个这东西是没有意义的。

window.onload = function(){...}

也就是说,它有局限性,求助于jQuery大大吧。

还是包装集:

$(document).ready(function(){...})

$(document)把DOM进行包装,返回一个包装集。

.ready()小猿目前认为它是jQuery的一个方法,也就是等待DOM加载完毕。

function(){...}是不是所谓的回调函数呢?

 

其实window.onload结束的标志是当整个DOM,以及资源(外部文件,图片等)加载完成之后才会触发事件,这是很令人烦恼的,据说可能会有人因为页面加载太慢而关掉了页面去找其它的页面了,我就是,除非我打开的是google搜索(欲哭无泪啊,google一禁令小猿何处去找资料啊???)

 

等等,jQuery又说了些令我吃惊的话:

$(function(){...})

完成了上面的任务,丝毫不差,好吧,目前我还是无法理解的。因为我真的不知道把一个函数包装起来干什么!

 

$(function(){
    $("<p>This is something created by jQuery</p>").insertAffter("#followme");
})

能看懂,但是这个insertAffter("#followme")确实比较新颖,小猿要记住它。

 

扩展jQuery。

jQuery虽好,但是不万能,万能即无能,,,,哎,,,,这是干啥啊,神神叨叨的。

$.fn.disable = function(){
    return this.each(function(){
        if (typeof this.disable != "undefined") this.disable = true;
    });
};

 

有几个疑点,但是先不管:

$.fn 这货是啥啊?我知道他类似于或者等价于 jQuery.fn,那fn有时啥啊???

里面三个this关键字,第一个跟后两个不相同,后两个指的是同一个对象。

咱也不知道第一个this是怎么传递过来的,貌似是谁调用这个disable()方法也,谁就是这个this(应该是一个包装集)。

返回值,each()函数的返回值,应该也是一个包装集,所以这就是jQuery链得以实现的原因吧。

posted @ 2014-06-11 22:31  VoctrALs  阅读(200)  评论(0编辑  收藏  举报