jquery基本語法使用、總結筆記

初識jQuery

jQuery簡介

什麼是jQuery?
jQuery是一個優秀的JavaScript庫,是一個憑藉簡潔的語法和跨平臺的兼容性,極大地簡化了JavaScript開發人員遍歷HTML文檔,操作DOM,執行動畫和開發Ajax的操作。jQuery封裝了很多預定義的對象和函數。其理念:write less,do more.

常見的javascript庫?

  • Prototype:是最早成型的JS庫之一,對於JS的內置對象做了大量的擴展。
  • Do jo:提供了很多奇特JS庫沒有提供的功能。例如:離線存儲的API,生成圖標的組件等等。
  • YUI:是由Yahoo公司開發的一套完備的,擴展性良好的富交互網頁程序工作集。
  • Ext JS:原本是對YUI的一個擴展,主要用於創建前端用戶界面。
  • Moo Tools:是一套輕量、簡潔、模擬化和麪向對象的JS框架。
  • jQuery:同樣是一個輕量級的庫,擁有強大的選擇器等更多優點,吸引了更多開發者去學習使用它。

jQuery的特性

jQuery能做以下事情:

  1. HTML元素選取
  2. HTML元素操作
  3. CSS操作
  4. HTML事件函數
  5. JavaScript特效和動畫
  6. HTML DOM遍歷和修改
  7. AJAX
  8. Utilities

jQuery的使用方式
1、下載後引入

<script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>

2、編寫簡單的 HelloWorld

<html>
       <head>
       <meta charset="UTF-8">
       <title>dom操作</title>
       <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>
       <script>
          $(function(){
             alert('Hello World');
          });
       </script>
       </head>
</html>

jQuery函數
jQuery庫只提供了一個叫jQuery的函數,該函數中以及該元素的原型中定義了大量的方法。jQuery函數具有四種參數:

1)選擇器(字符串)
	jQuery函數通過該選擇器獲取對應的DOM,然後將這些DOM封裝到一個人jQuery對象中並返回。
(2DOM對象(即Node實例)
	jQuery函數將該DOM封裝成jQuery對象並返回。
(3HTML文本字符串
	jQuery函數根據傳入的文本創建好HTML元素並封裝成jQuery對象並返回。
	$("<div class="one">one</div>");4)一個匿名函數
	$(function(){});
	當文當加載完畢之後jQuery函數調用匿名函數。

jQuery對象

jQuery對象是jQuery函數的一個實例,是一個類數組對象,數組中存放的是DOM對象,而DOM對象是Node的實例。

對jQuery對象的操作實際上是對jQuery數組中的DOM對象的批量操作。jQuery對象和DOM對象可以相互轉化。

jQuery對象的獲取通常是使用選擇器來獲取的。比如,獲取所有clss爲one元素:$(".one");

1、基本選擇器

$("#testId")     //id選擇器

$(".className")   //類選擇器

$("p")   //元素選擇器

$("*")  //全選擇器(匹配所有元素)

$("div,span,p")  //組合選擇器   多個選擇器使用都好分隔,取並集

2、層次選擇器

$("div p")  //後代選擇器
			//兩個選擇器使用空格隔開,表示可以獲取當前元素的子代以及孫子代等等後代元素。
$("div>p")  //子代選擇器
			//兩個選擇器使用>隔開,表示只能獲取當前選中元素的子代元素。
$("div + p")  //相鄰選擇器(一個)(同級)
			 //兩個選擇器使用+隔開,表示可以獲取當前元素的下一個兄弟元素,下一個兄弟元素要能符合.two。
$("div~p")   //兄弟選擇器(多個)(同級)
			//兩個選擇器使用~隔開,表示可以獲取當前元素之後的所有兄弟元素,只有所有兄弟元素要能符合.two。

jQuery過濾選擇器
jQuery的過濾器必須用在jQuery選擇器後,表示對通過前面的jQuery選擇器選擇到的內容的過濾。是建立在前面選擇器已經選擇到的元素的基礎之上。 語法:selector:過濾器

$("li:first")    //第一個li

$("li:last")     //最後一個li

$("li:even")     //匹配索引值爲偶數的元素(索引值從0開始計數)

$("li:odd")      //匹配索引值爲奇數的元素(索引值從0開始計數)

$("li:eq(4)")    //匹配索引值爲4的元素(索引值從0開始計數)也就是第五個元素

$("li:gt(2)")    //匹配索引值大於 2 的li

$("li:lt(2)")    //匹配索引值小於 2 的li

$("li:not(#test)") //匹配除 id="test" 以外的所有li

$("div:animated") //匹配正在執行動畫的div元素

$("div:focus") //匹配當前獲得焦點的div元素

可見性過濾選擇器

$("li:hidden")       //匹配所有不可見元素,或type爲hidden的元素

$("li:visible")      //匹配所有可見元素

屬性過濾選擇器

$("input[name]")          //匹配所有含有name屬性的input元素

$("div[id]")              //匹配所有含有 id 屬性的 div 元素

$("div[id='123']")        // 匹配id屬性值爲123的div 元素

$("div[id!='123']")        // id屬性值不等於123的div 元素

$("div[id^='qq']")        // id屬性值以qq開頭的div 元素

$("div[id$='zz']")        // id屬性值以zz結尾的div 元素

$("div[id*='bb']")        // id屬性值包含bb的div 元素

$("input[id][name$='man']")  //選擇含有id屬性且name屬性以man結尾的input元素

表單選擇器

$(":input")      //匹配所有 input, textarea, select 和 button 元素

$(":text")   //匹配所有的單行文本框,推薦使用$("input:text")效率更高,下同

$("input:password")   //所有密碼框

$("input:radio")      //所有單選按鈕

$("input:checkbox")   //所有複選框

$("input:submit")     //所有提交按鈕

$("input:reset")      //所有重置按鈕

$(":button")     //所有button按鈕(<input type=”button”>&&<button></button>)

$("input:file")       //所有文件域

$("input:hidden")   //匹配所有type=“hidden”的元素

狀態過濾選擇器(針對表單)

$("input:enabled")    // 匹配可用的 input

$("input:disabled")   // 匹配不可用的 input

$("input:checked")    // 匹配選中的 input

$("option:selected")  // 匹配選中的 option

	:checked    選取所有被選中的元素,用於複選框、單選框、下拉框
   :selected   選取所有被選中的元素,該選擇器只適用於<option>
   :focus   選取當前獲取焦點的元素
   :text    選取所有的單行文本框(<input type="text">)
   :password  選取所有的密碼框
   :input     選取所有的<input>,<textarea>,<select>,<button>元素。
       *注意,$(":input")是選中可以讓用戶輸入的標籤元素;而$("input")是選擇名字爲input的標籤元素。*
   :enable   選取所有可用元素,該選擇器僅可用於支持disable屬性的html元素。(<button>,<input>,<optgruop>,<option>,<select>,<textarea>)
   :disable   選取所有不可用元素,該選擇器也僅可用於支持disable屬性的html元素。
   :radio      選取所有的單選框
   :checkbox   選取所有的多選框
   :submit     選取所有的提交按鈕
   :image      選取所有的input類型爲image的表單元素
   :reset   選取所有的input類型爲reset的表單元素
   :button  選取所有的input類型爲button的表單元素
   :file    選取所有的input類型爲file的表單元素

jquery基本語法

$(this).hide()
	演示 jQuery 的 hide() 函數,隱藏當前的 HTML 元素。
$("p").hide()
	演示 jQuery 的 hide() 函數,隱藏所有 <p> 元素。
$(".test").hide()
	演示 jQuery 的 hide() 函數,隱藏所有 class="test" 的元素。
$("#test").hide()
	演示 jQuery 的 hide() 函數,隱藏 id="test" 的元素。 
$("[href]") 選取所有帶有 href 屬性的元素。


$("[href='#']") 選取所有帶有 href 值等於 "#" 的元素。
$("[href!='#']") 選取所有帶有 href 值不等於 "#" 的元素。
$("[href$='.jpg']") 選取所有 href 值以 ".jpg" 結尾的元素。
jQuery CSS 選擇器
jQuery CSS 選擇器可用於改變 HTML 元素的 CSS 屬性。

下面的例子把所有 p 元素的背景顏色更改爲紅色:
實例
$("p").css("background-color","red");

$(this)     當前 HTML 元素
$("p")             所有 <p> 元素
$("p.intro")     所有 class="intro" 的 <p> 元素
$(".intro")     所有 class="intro" 的元素
$("#intro")     id="intro" 的元素
$("ul li:first")     每個 <ul> 的第一個 <li> 元素
$("[href$='.jpg']")     所有帶有以 ".jpg" 結尾的屬性值的 href 屬性
$("div#intro .head")     id="intro" 的 <div> 元素中的所有 class="head" 的元素

JQuery事件

下面是 jQuery 中事件方法的一些例子:
Event 函數     綁定函數至
$(document).ready(function)     將函數綁定到文檔的就緒事件(當文檔完成加載時)
$(selector).click(function)     觸發或將函數綁定到被選元素的點擊事件
$(selector).dblclick(function)     觸發或將函數綁定到被選元素的雙擊事件
$(selector).focus(function)     觸發或將函數綁定到被選元素的獲得焦點事件
$(selector).mouseover(function)     觸發或將函數綁定到被選元素的鼠標懸停事件

jQuery Fading方法

fadeIn() //用於淡入已隱藏的元素
fadeOut()  //用於淡出可見元素
fadeToggle()  //fadeIn()與fadeOut() 之間的切換,括號裏可以加入時間來顯示和隱藏的速度;
fadeTo()  // 方法允許漸變爲給定的不透明度(值介於 0 與 1 之間)。

jQuery滑動

slideDown()方法用於向下滑動元素。$(selector).slideDown(speed,callback);
slideUp()   方法用於向上滑動元素。語法:$(selector).slideUp(speed,callback);
slideToggle() 在 slideDown() 與 slideUp() 方法之間進行切換。$(selector).slideToggle(speed,callback);

jQuery中的Dom操作

1、查找節點
通過jQuery選擇器來完成

2、創建節點

  創建元素節點:var newTd = $("<td></td>")

  創建文本節點:var newTd = $("<td>文本內容</td>")

3、插入節點

1)$A.append(B)B追加到A的末尾處,作爲它的最後一個子元素
(2)$A.appendTo(B)A追加到B的末尾,作爲它的最後一個子元素
(3)prepend() 
	$A.prependTo(B)A追加到B的前面,作爲它的第一個子元素
	$A.after(B)A之後追加B,作爲它的兄弟元素
    $A.insertAfter(B)B之後追加A,作爲它的兄弟元素
    $A.before(B)A之前追加B,作爲它的兄弟元素
    $A.insertBefore(B)B之前追加A,作爲它的兄弟元素

4、刪除節點

remove([selector])DOM中刪除所有匹配的元素,返回值是一個指向已經被刪除的節點的引用,可以在以後再使用這些元素。
       該方法會移除元素,同時也會移除元素內部的一切,包括綁定的事件及與該元素相關的jQuery數據。
detach([selector])
       與remove()類似,但是detach()保存所有jQuery數據和被移走的元素的相關聯事件。
empty()
       無參數。從DOM中清空集合中匹配元素的所有的子節點。

5、複製節點

$("#id").clone(false);
  該方法返回的是一個節點的引用,參數默認爲false,爲淺複製;
  參數是true,爲深複製,含義是:複製元素的同時複製元素中所綁定的事件。

6、替換節點

   replaceWith(newContent);
        用新內容替換集合中所有匹配的元素,並且返回被刪除的元素的集合。
        該方法會刪除與節點相關聯的所有數據和事件處理程序。
   replaceAll(target);
        用集合的匹配元素替換每個目標元素。顛倒了replaceWith()操作效果。

7、包裹節點

   wrap([wrappingElement])
        在每個匹配的元素外層包上一個html元素
   warpAll([wrappingElement])
        將所有匹配的元素用一個元素來包裹,在所有匹配元素外面包裹一層HTML結構
   warpInner([wrappingElement])
        每個匹配元素裏面內容(子元素)都會被這種結構包裹

8、節點遍歷

   children([selector]) 
        用於取得匹配元素的子元素集合(只考慮子元素而不考慮任何後代元素)
      $('.content.inner')=>$('.content').children('.inner');  
   find(selector)
        在當前對象元素中的子元素查找,和參數所匹配的所有的後代元素
   next([selector])
        取得匹配的元素集合中每一個元素緊鄰的後面兄弟元素
   nextAll([selector])
        查找當前元素之後所有的同輩元素
   prev([selector])
         取得匹配元素前面緊鄰的兄弟元素
   prevAll([selector])
         取得當前元素之前所有的同輩元素
   silibinng([selector])
         取得匹配元素的前後所有的兄弟元素
   closest(selector)
         取得和參數匹配的最近的元素,如果匹配不上繼續向上查找父元素
   filter(selector)
         把當前所選擇的所有元素再進行篩選過濾
   parent([selector])
         取得匹配元素的集合中,每個元素的父元素
   parents([selector])
         獲得集合中每個匹配元素的祖先元素

jQuery的事件和API

一、事件

	on()
      在選定的元素上綁定一個或多個事件處理函數。
   off()
      移除一個事件處理函數。
   trigger()
      根據綁定到匹配元素的給定的事件類型執行所有的處理程序和行爲。

二、鼠標事件

   click()  單擊
   dblclick()  雙擊
   hover()   懸停
   mousedown()  按下
   mouseup()  擡起
   mouseenter()  移入  不支持子元素
   mouseleave()  離開  不支持子元素 
   mouseout()   離開  支持子元素 
   mouseover()  進入  支持子元素 
   mousemove()  移動

三、鍵盤事件

   keypress()   按鍵按下
   keyup()   按鍵擡起
   keydown()   按鍵按下

四、表單事件

   focus()  聚焦事件
   blur()    失去焦點事件
   change()  當元素的值發生改變時激發的事件
   select()  當textarea或文本類型的input元素中的文本被選擇時觸發的事件
   submit()  表單提交事件,綁定在form上

五、jQuery中常用的API
1、.jQuery中的html(),text(),val()方法

   html()
           無參:獲取html的值
           有參數html:設置html的值

   text()
           無參:獲取文本值
           有參數text:設置文本值
   val()
           無參:獲取value的值
           有參數value:設置value的值

2、jQuery中的工具方法

1get();  //以數組的形式返回DOM節點。
        console.log($('div').get());2toArray();  //返回一個包含jQuery對象結合中的所有DOM元素數組。
        console.log($('div').toArray());3eq(index);  //返回index位置上的jQuery對象。
        console.log($('div').eq(1).get(0));4filter(function(index,item){});   //過濾器函數,返回jQuery對象。
        var $result = $('div').filter(function(index,item){
        return index == 2;
      });5map(function(index,item){});   //用於獲取或設置元素集合中的值。
        var $result = $('div').map(function(index,item){
        return $(item).html()
      });6each(function(index,item){});  //遍歷一個jQuery對象。
          $('div').each(function(index,item){
        console.log(index,'--',item);
      });7slice(0,3);  //截取
        var $result = $('div').slice(0,3);
      console.log($result.get());
   });8not()9first()10last()11is()12has()

3、jQuery中屬性設置函數

	//獲取屬性值
       attr(key)
       prop(key)
    //刪除屬性   
       removeAttr(attributeName)
       removeProp(propertyName)
    //批量設置屬性   
       css(key)
    //添加類   
       addClass(className)
    //判斷有沒有指定的類,有,返回true,否則返回false   
       hasClass(className)
    //刪除類   
       removeClass(className)

jQuery中的動畫

一、jQuery樣式相關方法
寬度 = width + 2padding + 2border + 2margin

   //獲取視口區的寬高:
   1、$(window).height()
   2、$(window).width()

   //獲取內容區的寬高:
      $('div').width(); 
      $('div').height();

   //獲取內容+padding區的寬高:
   3、$('div').innerHeight()
   4、$('div').innerWidth()

   //獲取內容+padding+border區的寬高:
   5、$('div').outerHeight()
   6、$('div').outerWidth()

   //獲取內容+padding+border+margin區的寬高: 
    $('div').outerWidth(true); 
    $('div').outerHeight(true);

   //獲取相對於文檔的偏移
   7.offset()

   //獲取相對於定位父元素的偏移
   8.position()

   //橫向滾動條左側的偏移
   9.scrollLeft()

   //橫向滾動條上側的偏移
   10.scrollTop()

   //獲取離它最近的父定位元素  
   11.offsetParent()

二、效果

	1.基本效果
      (1)隱藏 hide()2)顯示 show()3)隱藏與顯示 toggle()

    2.淡入淡出效果
      (1)淡入  fadeIn()2)淡出  fadeOut()3)淡入到 fadeTo()4)淡入與淡出 fadeToggle()

    3.滑動效果
      (1)滑下 slideDown()2)滑上 slideUp()3)滑上與滑下 slideToggle()

    4.自定義效果
      animate()    
發佈了30 篇原創文章 · 獲贊 18 · 訪問量 1399
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章