jQuery

1、jQuery概述
一、什麼是jQuery
jQuery:是一門輕量的、免費開源的JS函數庫css

document.getElementById("user").value
$("#user").val();
jQuery能夠極大地簡化JS代碼
jQuery核心思想: 寫的更少,但作的更多html

輕量的:一個框架或者技術對咱們項目的侵入程度是很是低的(反過來講,咱們的項目或代碼對該技術的依賴程度是很是低的)jquery

二、jQuery優點
1)能夠極大地簡化JS代碼
2)能夠像CSS選擇器同樣獲取元素
3)能夠經過修改CSS樣式來控制頁面的效果
oDiv.style.backgroundColor = "red";
$("div").css("background-color", "red");
4)能夠兼容經常使用瀏覽器(谷歌/火狐/蘋果/歐朋)瀏覽器

三、如何引入jQuery
jquery-1.8.3.js: 未壓縮的(262kb),學習或研究或在項目上線以前
jquery-1.8.3.min.js: 壓縮以後的(92kb),項目上線app

在head或body標籤內部添加script標籤,經過script標籤引入jQuery的函數庫文件
<!-- 引入jQuery的函數庫文件 -->
<script src="js/jquery-1.8.3.min.js"></script>框架

在引入jQuery函數庫文件時,若是文件引入路徑錯誤,則會致使文件引入失敗ide

var oDiv = jQuery("#demo");
var oDiv = $("#demo");
jQuery == $,所以,調用jQuery()函數等價於調用$()函數函數

四、文檔就緒事件函數
文檔就緒事件函數: 該函數會在瀏覽器加載完全部的html元素後當即執行
一、JS提供的文檔就緒函數:
window.onload = function(){
//這裏的代碼會在瀏覽器加載完全部的html元素後當即執行
}學習

二、jQuery提供的文檔就緒函數:
簡寫形式:
$(function(){動畫

//這裏的代碼會在瀏覽器加載完全部的html元素後當即執行

})
完整寫法:
$(document).ready(function(){

//這裏的代碼會在瀏覽器加載完全部的html元素後當即執行

});

三、何時該用文檔就緒事件函數?
若是要獲取元素,獲取元素的代碼執行時,元素尚未被瀏覽器加載,確定是獲取不到的!
此時,能夠將獲取元素的代碼放在文檔就緒事件函數中,由於這個函數是在瀏覽器加載完全部的html元素後當即執行,此時全部元素都已經被加載了,在這個函數中獲取任何元素均可以獲取到!

只要獲取元素的代碼是在元素加載後執行,就能夠獲取(無論使用什麼方式!)

JS的和jQuery的文檔就緒事件函數,在執行時,jQuery會更快,由於jQuery會在頁面元素自己加載完就執行,若是元素裏有內容,它是不加載的。jQuery這個文檔就緒事件函數能夠寫多個,可是JS的只能寫一個。

2、jQuery選擇器
0、爲元素綁定點擊事件的幾種方式:
方式一: 在元素上經過onclick屬性爲元素綁定點擊事件
只要點擊這個元素,就會觸發點擊事件,執行testFn()函數



方式二: (JS)經過代碼獲取元素,返回的是表示該元素的JS對象,
再經過【對象.onclick】屬性爲元素綁定點擊事件。
只要點擊這個元素,就會觸發點擊事件,執行後面的function函數
var oB1 = document.getElementById("b1");
oB1.onclick = function(){
alert("JS:b1按鈕被點擊了。。。");
}
方式三: (jQuery)經過選擇器獲取元素,返回的是表示該元素的jQuery對象,
再經過【對象.click】函數爲元素綁定點擊事件。
$("#b1").click( function(){
alert("jQuery:b1按鈕被點擊了。。。");
} );

一、基本選擇器

1)元素名選擇器
    $("div") -- 匹配全部的div元素
    $("span") -- 匹配全部的span元素
2)class選擇器
    $(".mini") -- 匹配全部class值爲mini的元素
    $("span.mini") -- 匹配全部class值爲mini的span元素
    <span class="mini">...</span>
    <span class="mini">...</span>
    <div class="mini">...</div>
    <div class="mini">...</div>

3)ID選擇器

$("#one") -- 匹配id值爲one的元素

4)多元素選擇器

$("div,span,.mini,#one") -- 匹配全部的div,全部的span,以及全部class爲mini,以及id值爲one的元素

二、層級選擇器
1)後代選擇器

$("div span") -- 匹配全部div內部的span元素
$("#box1 input") -- 匹配id值爲box1元素內部的全部input元素

2)相鄰兄弟選擇器
相鄰兄弟:若是兩個元素是緊挨着,而且具備相同的父元素,這兩個元素就是相鄰兄弟
能夠經過相鄰兄弟選擇器選中後面緊鄰的兄弟元素

$("#two+span") -- 匹配id值爲two的元素後面緊鄰的span兄弟元素
$("#two").next("span") -- 匹配id值爲two的元素後面緊鄰的span兄弟元素
$("#two").prev("span") -- 匹配id值爲two的元素前面緊鄰的span兄弟元素
-----------------------
<span>000</span>
<div id="#two"></div>
<span>111</span>
-----------------------
$("#two").nextAll() -- 匹配id爲two的元素後面全部的兄弟元素
$("#two").nextAll("div") -- 匹配id爲two的元素後面全部的div兄弟元素
$("#two").prevAll("div") -- 匹配id爲two的元素前面全部的div兄弟元素
$("#two").siblings("div") -- 匹配id爲two的元素前、後全部的div兄弟元素

三、基本過濾選擇器
根據下標匹配元素:

$("div").eq(n) -- 表示匹配全部div中的第n+1個div元素
$("div:eq(n)") -- 表示匹配全部div中的第n+1個div元素

$("div:first") -- 匹配全部div中的第一個div元素
$("div").eq(0) -- 匹配全部div中的第一個div元素

$("div:last") -- 匹配全部div中的最後一個div元素
$("div").eq( $("div").length-1 ) -- 匹配全部div中的最後一個div元素
$("div").eq( -1 ) -- 匹配全部div中的最後一個div元素

四、表單選擇器

$(":input") -- 匹配全部的表單項元素(包括input、select、textarea、button)
$(":text") -- 匹配全部普通文本輸入框
$(":password") -- 匹配全部密碼輸入框
$(":radio") -- 匹配全部單選框
$(":checkbox") -- 匹配全部複選框
$(":radio:checked") -- 匹配全部被選中的單選框
$(":checkbox:checked") -- 匹配全部被選中的複選框

調錯步驟:
1)按f12,看瀏覽器的控制檯(Console)窗口中有沒有錯誤提示
若是有,根據錯誤信息進行排查!
2)也能夠在程序中添加 debugger 斷點!

3、
一、html元素操做

(1)建立html元素
    $("<div></div>") -- 建立一個div元素,返回一個jQuery對象
    $("<div>這是一個div元素</div>") -- 建立一個包含內容的div元素,返回一個jQuery對象
    $("<input type='text'/>") -- 建立文本輸入框,返回一個jQuery對象

(2)添加子元素 -- append()

$("body").append("<table><tr><td>這是一個td元素</td></tr></table>");
-- 往body中添加一個表格元素

var $div = $("<div>這是一個div元素</div>");
$("body").append( $div ) -- 往body中添加一個div元素

(3)刪除元素 -- remove()

$("div").remove() -- 刪除全部匹配的div元素

(4)替換元素 -- replaceWith()

$("div").replaceWith("<p>我是來替換div的p元素!!</p>")

二、html內容 及 值的操做

<div>div111</div>
<input type="text"/>
<select>...</select>

html()函數 -- 獲取元素的全部內容(包裹在開始標籤和結束標籤中的全部內容)

若是經過選擇器匹配了多個元素,只能獲取第一個元素的內容
html()函還能夠設置元素的內容,若是經過選擇器匹配了多個元素,則會給全部元素設置內容
-- 在js中對應的是innerHTML屬性

text()函數 -- 獲取元素中的全部文本內容(值獲取文本,不獲取標籤)

若是經過選擇器匹配了多個元素,能夠將全部元素內部的文本都返回
text()函數還能夠爲元素的設置文本內容(只能設置文本)
-- 在js中對應的是innerText屬性(這個屬性在部分瀏覽器中不兼容)

val()函數 -- 獲取表單項元素的value值 或者是 爲表單項元素設置value值

表單項元素: input/select/option/textarea

三、html元素屬性 或者 css屬性操做

<div name="aaa" style="border:2px solid red"></div>

prop()函數 -- 獲取元素的某一個屬性值,或者爲元素設置屬性值
attr()函數 -- 能夠獲取元素的屬性值,或者爲元素設置屬性值
prop()和attr()的區別:
(1) prop函數是在jquery1.6版本以後纔出現,用於獲取或設置元素的屬性(固有屬性)值,

好比: input元素的id,class,name,type等屬性都是固有屬性
    好比: 爲input指定一個aaa屬性,這個叫作自定義屬性
attr函數是在jquery1.6版本以前就有的函數,用於獲取或設置元素的屬性(自定義屬性)值

css()函數 -- 能夠獲取或設置元素的css樣式

四、動畫函數
show() -- 設置元素爲顯示狀態\, 等價於 css("display"\, "block|inline");
hide() -- 設置元素爲隱藏狀態, 等價於 css("display", "none");
toggle() -- 切換元素的顯示狀態, 若是元素自己是顯示的,則會變成隱藏狀態,若是元素自己是隱藏的,則會變成顯示狀態

slideToggle() -- 切換元素的顯示狀態, 若是元素自己是顯示的,則會變成隱藏狀態,若是元素自己是隱藏的,則會變成顯示狀態

五、parent()/parents()/find()
parent() -- 獲取當前元素的父元素, 相似於js中的 parentNode 屬性
parents("tr") -- 獲取當前元素的全部的祖先元素
$(":checked").parent().parent();
$(":checked").parents("tr")

find() -- 獲取當前元素內部指定的後代元素$("div").find("span") -- 獲取全部div元素內部的span元素$("div span") -- 獲取全部div元素內部的span元素

相關文章
相關標籤/搜索