前言:jQuery很靈活,太靈活了,可以說是他一個優點,也是他一個缺點,達到一種效果,十個人也許會用十種不同的方法來實現這個過程,結果一樣,過程不一樣,這到底是好,還是壞呢。
一,什麼是jQuery
jQuery是繼prototype之後又一個優秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,寫更少的代碼,做更多的事情。說白了,jquery就是javascript。只不過按照人的習慣思維把它封裝了一個比較強大的框架。還有一點jquery能夠把html和javascript盡量分離,這也是我願意用jquery的一個重要原因。jqueryt很靈活,太靈活了,可以說是他一個優點,也是他一個缺點,達到一種效果,十個人也許會用十種不同的方法來實現這個過程,結果一樣,過程不一樣,這到底是好,還是壞呢。就各說各的理了。
二,學習和使用jquery的困惑
1)$.fn.extend({})和$.extend({})
$.fn.extend是擴展jQuery元素集來提供新的方法(通常用來制作插件)。解釋一下,就是通過$.fn.extend產生的jquery方法在調用jquery時,不會包括括在jquery自身的對象中,它是擴展插件的形勢,繼承的。你可以把它理解為php中的extend。
舉個例子 $.fn.extend({
checkname: function() {
if($.trim($(this).val()) != ""){
return true;
}else{
return false;
}
}
});
調用時 $("input.name").checkname();
$.extend是擴展jQuery對象本身。解釋一下,就是說通過$.extend產生的jquery方法,在調用jquery時,會包括在jquery自身的對象中。說白了,就是在jquery對象中添加方法,例如
$.extend({
checkname: function(name) {
if($.trim(name!= ""){
return true;
}else{
return false;
}
}
});
調用時 $.checkname($("input.name").val());
2)$().each({})和$.each({})
$().each({})用來循環數組和對像
<ul>
<li><div>Glen</div></li>
<li>Tane</li>
<li>Ralph</li>
</ul>
下面是循環對象
$("ul li").each(function(k,v){
alert("key="+k+",value="+$(v).html());
});
);
下面是循環數組
array = [0,1,2];
$(array).each(function(k,v){
alert("key="+k+",value="+v);
})
$.each({})可用來循環所有數組和對象,個人覺得他們二個沒什麼差別,除了寫法不一樣外
注意:function(k)這裡k是下標,function(k,v)這是k還是下標,v不一定,有可能是數組裡面的一個值,也有可能是一個對象,如果是對象時,如果參數不寫出來,默認情況是this
3),$(" :contains()")和$(" :has()")
$(" :contains()") 匹配包含給定文本的元素,contains裡面包括的是文本內空
$("li:contains('Ra')").css('color','red');
$(" :has()")匹配含有選擇器所匹配的元素的元素,has裡面包話的是一個標簽
$("li:has(div)").css('color','red');
4), $(" :first")和 $(" :first-child")
$(" :first") 匹配找到的第一個元素
$(" :first-child") 匹配第一個子元素, ':first' 只匹配一個元素,而此選擇符將為每個父元素匹配一個子元素
<div>
<ul>
<li>list item 1</li>
<li>list item 2
<ul>
<li>list item 2-a</li>
<li>list item 2-b</li>
</ul>
</li>
<li>list item 3</li>
<li>list item 4</li>
</ul>
</div>
$("ul li:first").css('color','red'); //只匹配第一次,
$("ul li:first-child").css('color','red'); //匹配每個符合要求的對象
$().html()和$().text() $().html()取得第一個匹配元素的html內容。這個函數不能用於XML文檔。但可以用於XHTML文檔。 $().text()結果是由所有匹配元素包含的文本內容組合起來的文本。這個方法對HTML和XML文檔都有效。 <span><p>Hello</p></span> $('span').html();
//得到的結果是<p>Hello</p>
$('span').texxt(); //得到的結果是Hello
6), $().empty()和$().remove() $().empty() 清空匹配元素中的內空,但不清空自身、
$().remove(),清空匹配元素中的內空,以及自身 <span><p>Hello</p></span>
$('p').empty() //得到的結果是<span><p></p></span> $('p').remove() //得到的結果是<span></span>
------------------------------------------分割線------------------------------------------
jQuery權威指南 PDF版中文+配套源代碼 http://www.linuxidc.com/Linux/2013-10/91059.htm
jQuery實戰 中文PDF+源碼 http://www.linuxidc.com/Linux/2013-09/90631.htm
《jQuery即學即用(雙色)》 PDF+源代碼 http://www.linuxidc.com/Linux/2013-09/90383.htm
鋒利的jQuery(第2版) 完整版PDF+源碼 http://www.linuxidc.com/Linux/2013-10/91527.htm
jQuery完成帶復選框的表格行高亮顯示 http://www.linuxidc.com/Linux/2013-08/89406.htm
jQuery基礎教程(第4版) PDF 完整高清版+配套源碼 http://www.linuxidc.com/Linux/2014-03/98162.htm
--------------------------------------分割線 --------------------------------------
jQuery 的詳細介紹:請點這裡
jQuery 的下載地址:請點這裡