jQuery中容易讓人困惑的東西
一,什么是jquery
jQuery是繼prototype之后又一個(gè)優(yōu)秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,寫更少的代碼,做更多的事情。說白了,jquery就是javascript。只不過按照人的習(xí)慣思維把它封裝了一個(gè)比較強(qiáng)大的框架。還有一點(diǎn)jquery能夠把html和javascript盡量分離,這也是我愿意用jquery的一個(gè)重要原因。jqueryt很靈活,太靈活了,可以說是他一個(gè)優(yōu)點(diǎn),也是他一個(gè)缺點(diǎn),達(dá)到一種效果,十個(gè)人也許會(huì)用十種不同的方法來實(shí)現(xiàn)這個(gè)過程,結(jié)果一樣,過程不一樣,這到底是好,還是壞呢。就各說各的理了。
二,學(xué)習(xí)和使用jquery的困惑
1)$.fn.extend({})和$.extend({})
$.fn.extend是擴(kuò)展jQuery元素集來提供新的方法(通常用來制作插件)。解釋一下,就是通過$.fn.extend產(chǎn)生的jquery方法在調(diào)用jquery時(shí),不會(huì)包括括在jquery自身的對(duì)象中,它是擴(kuò)展插件的形勢(shì),繼承的。你可以把它理解為php中的extend。舉個(gè)例子
- $.fn.extend({
- checkname: function() {
- if($.trim($(this).val()) != ""){
- return true;
- }else{
- return false;
- }
- }
- });
調(diào)用時(shí) $("input.name").checkname();
$.extend是擴(kuò)展jQuery對(duì)象本身。解釋一下,就是說通過$.extend產(chǎn)生的jquery方法,在調(diào)用jquery時(shí),會(huì)包括在jquery自身的對(duì)象中。說白了,就是在jquery對(duì)象中添加方法,例如
- $.extend({
- checkname: function(name) {
- if($.trim(name!= ""){
- return true;
- }else{
- return false;
- }
- }
- });
調(diào)用時(shí) $.checkname($("input.name").val());
2)$().each({})和$.each({})
$().each({})用來循環(huán)數(shù)組和對(duì)像
- <ul>
- <li><div>Glen</div></li>
- <li>Tane</li>
- <li>Ralph</li>
- </ul>
下面是循環(huán)對(duì)象
- $("ul li").each(function(k,v){
- alert("key="+k+",value="+$(v).html());
- });
- );
下面是循環(huán)數(shù)組
- array = [0,1,2];
- $(array).each(function(k,v){
- alert("key="+k+",value="+v);
- });
$.each({})可用來循環(huán)所有數(shù)組和對(duì)象,個(gè)人覺得他們二個(gè)沒什么差別,除了寫法不一樣外
下面是循環(huán)數(shù)組
- array = [0,1,2];
- $.each(array,function(k,v){
- alert("key="+k+",value="+v);
- });
下面是循環(huán)對(duì)象
- $.each($("ul li"),function(k,v){
- alert("key="+k+",value="+$(v).html());
- });
注意:function(k)這里k是下標(biāo),function(k,v)這是k還是下標(biāo),v不一定,有可能是數(shù)組里面的一個(gè)值,也有可能是一個(gè)對(duì)象,如果是對(duì)象時(shí),如果參數(shù)不寫出來,默認(rèn)情況是this
3),$(" :contains()")和$(" :has()")
$(" :contains()") 匹配包含給定文本的元素,contains里面包括的是文本內(nèi)空
$("li:contains('Ra')").css('color','red');
$(" :has()")匹配含有選擇器所匹配的元素的元素,has里面包話的是一個(gè)標(biāo)簽
$("li:has(div)").css('color','red');
4), $(" :first")和 $(" :first-child")
$(" :first") 匹配找到的***個(gè)元素
- <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'); //匹配每個(gè)符合要求的對(duì)象
- 5),$().html()和$().text()
- $().html()取得***個(gè)匹配元素的html內(nèi)容。這個(gè)函數(shù)不能用于XML文檔。但可以用于XHTML文檔。
- $().text()結(jié)果是由所有匹配元素包含的文本內(nèi)容組合起來的文本。這個(gè)方法對(duì)HTML和XML文檔都有效。
- <span><p>Hello</p></span>
- $('span').html(); //得到的結(jié)果是<p>Hello</p>
- $('span').texxt(); //得到的結(jié)果是Hello
- 6),$().empty()和$().remove()
- $().empty() 清空匹配元素中的內(nèi)空,但不清空自身、
- $().remove(),清空匹配元素中的內(nèi)空,以及自身
- <span><p>Hello</p></span>
- $('p').empty() //得到的結(jié)果是<span><p></p></span>
- $('p').remove() //得到的結(jié)果是<span></span>
【編輯推薦】
- jQuery浮動(dòng)留言板插件
- 12個(gè)必要的jQuery表單插件
- 27個(gè)jQuery網(wǎng)頁(yè)拖放操作的插件
- 1.1.4 jQuery的代碼特色
- 1.1.3 jQuery的基本概念