JQuery

什么是 jQuery ?

jQuery是一個(gè)JavaScript函數(shù)庫(kù)。
jQuery是一個(gè)輕量級(jí)的"寫的少,做的多"的JavaScript庫(kù)。
jQuery庫(kù)包含以下功能:
HTML 元素選取
HTML 元素操作
CSS 操作
HTML 事件函數(shù)
JavaScript 特效和動(dòng)畫
HTML DOM 遍歷和修改
AJAX
Utilities
提示: 除此之外,Jquery還提供了大量的插件。

jQuery 語法

jQuery 語法是通過選取 HTML 元素,并對(duì)選取的元素執(zhí)行某些操作
基礎(chǔ)語法: $(selector).action()

$ 美元符號(hào)定義 jQuery
選擇符(selector)"查詢"和"查找" HTML 元素
jQuery 的 action() 執(zhí)行對(duì)元素的操作

實(shí)例:
  • $(this).hide() 隱藏當(dāng)前元素
  • $("p").hide() 隱藏所有 <p> 元素
  • $("p.test").hide() 隱藏所有 class="test" 的 <p> 元素
  • $("#test").hide() 隱藏所有 id="test" 的元素

jQuery 入口函數(shù) 和 JavaScript 入口函數(shù)

jQuery 入口函數(shù)
$(document).ready(function(){
    // 執(zhí)行代碼
});
或者
$(function(){
    // 執(zhí)行代碼
});
JavaScript 入口函數(shù)
window.onload = function () {
    // 執(zhí)行代碼
}
兩者區(qū)別
  • jQuery 的入口函數(shù)是在 html 所有標(biāo)簽(DOM)都加載之后,就會(huì)去執(zhí)行。
  • JavaScript 的 window.onload 事件是等到所有內(nèi)容,包括外部圖片之類的文件加載完后,才會(huì)執(zhí)行。


    image.png

jQuery 選擇器

  • jQuery 選擇器允許對(duì) HTML 元素組或單個(gè)元素進(jìn)行操作。
  • jQuery 選擇器基于元素的 id、類、類型、屬性、屬性值等"查找"(或選擇)HTML 元素。 它
    基于已經(jīng)存在的 CSS 選擇器,除此之外,它還有一些自定義的選擇器。
  • jQuery 中所有選擇器都以美元符號(hào)開頭:$()。
元素選擇器
jQuery 元素選擇器基于元素名選取元素。

在頁面中選取所有 <p> 元素:

$("p")

實(shí)例: 用戶點(diǎn)擊按鈕后,所有 <p> 元素都隱藏:
$(document).ready(function(){
  $("button").click(function(){
    $("p").hide();
  });
});
#id 選擇器
  • jQuery #id 選擇器通過 HTML 元素的 id 屬性選取指定的元素。
  • 頁面中元素的 id 應(yīng)該是唯一的,所以您要在頁面中選取唯一的元素需要通過 #id 選擇器。
    通過 id 選取元素語法如下:

$("#test")

實(shí)例: 當(dāng)用戶點(diǎn)擊按鈕后,有 id="test" 屬性的元素將被隱藏:
$(document).ready(function(){
  $("button").click(function(){
    $("#test").hide();
  });
});
.class 選擇器
  • jQuery 類選擇器可以通過指定的 class 查找元素。
    語法如下:

$(".test")

實(shí)例: 用戶點(diǎn)擊按鈕后所有帶有 class="test" 屬性的元素都隱藏:
$(document).ready(function(){
  $("button").click(function(){
    $(".test").hide();
  });
});
更多實(shí)例
| 語法                                | 描述
| $("*")                              | 選取所有元素
| $(this)                             | 選取當(dāng)前 HTML 元素
| $("p.intro")                        | 選取 class 為 intro 的 <p> 元素 
| $("p:first")                        | 選取第一個(gè) <p> 元素 
| $("ul li:first")                    | 選取第一個(gè) <ul> 元素的第一個(gè) <li> 元素
| $("ul li:first-child")              | 選取每個(gè) <ul> 元素的第一個(gè) <li> 元素
| $("[href]")                         | 選取帶有 href 屬性的元素 
| $("a[target='_blank']")             | 選取所有 target 屬性值等于 "_blank" 的 <a> 元素
| $("a[target!='_blank']")            | 選取所有 target 屬性值不等于 "_blank" 的 <a> 元素
| $(":button")                        | 選取所有 type="button" 的 <input> 元素 和 <button> 元素
| $("tr:even")                        | 選取偶數(shù)位置的 <tr> 元素
| $("tr:odd")                         | 選取奇數(shù)位置的 <tr> 元素 

jQuery 事件

什么是事件?
  • 頁面對(duì)不同訪問者的響應(yīng)叫做事件。
  • 事件處理程序指的是當(dāng) HTML 中發(fā)生某些事件時(shí)所調(diào)用的方法。
實(shí)例:
  • 在元素上移動(dòng)鼠標(biāo)。
  • 選取單選按鈕
  • 點(diǎn)擊元素
常用的 jQuery 事件方法
click()

click() 方法是當(dāng)按鈕點(diǎn)擊事件被觸發(fā)時(shí)會(huì)調(diào)用一個(gè)函數(shù)。
該函數(shù)在用戶點(diǎn)擊 HTML 元素時(shí)執(zhí)行。
在下面的實(shí)例中,當(dāng)點(diǎn)擊事件在某個(gè) <p> 元素上觸發(fā)時(shí),隱藏當(dāng)前的 <p> 元素:

$("p").click(function(){
  $(this).hide();
});
dblclick()
  • 當(dāng)雙擊元素時(shí),會(huì)發(fā)生 dblclick 事件。
    dblclick() 方法觸發(fā) dblclick 事件,或規(guī)定當(dāng)發(fā)生 dblclick 事件時(shí)運(yùn)行的函數(shù):
$("p").dblclick(function(){
  $(this).hide();
});
mouseleave()
  • 當(dāng)鼠標(biāo)指針離開元素時(shí),會(huì)發(fā)生 mouseleave 事件。
    mouseleave() 方法觸發(fā) mouseleave 事件,或規(guī)定當(dāng)發(fā)生 mouseleave 事件時(shí)運(yùn)行的函數(shù):
$("#p1").mouseleave(function(){
    alert("再見,您的鼠標(biāo)離開了該段落。");
});
mousedown()
  • 當(dāng)鼠標(biāo)指針移動(dòng)到元素上方,并按下鼠標(biāo)按鍵時(shí),會(huì)發(fā)生 mousedown 事件。
    mousedown() 方法觸發(fā) mousedown 事件,或規(guī)定當(dāng)發(fā)生 mousedown 事件時(shí)運(yùn)行的函數(shù):
$("#p1").mousedown(function(){
    alert("鼠標(biāo)在該段落上按下!");
});
mouseup()
  • 當(dāng)在元素上松開鼠標(biāo)按鈕時(shí),會(huì)發(fā)生 mouseup 事件。
    mouseup() 方法觸發(fā) mouseup 事件,或規(guī)定當(dāng)發(fā)生 mouseup 事件時(shí)運(yùn)行的函數(shù):
$("#p1").mouseup(function(){
    alert("鼠標(biāo)在段落上松開。");
});
hover()
  • hover()方法用于模擬光標(biāo)懸停事件。
    當(dāng)鼠標(biāo)移動(dòng)到元素上時(shí),會(huì)觸發(fā)指定的第一個(gè)函數(shù)(mouseenter);當(dāng)鼠標(biāo)移出這個(gè)元素時(shí),會(huì)觸發(fā)指定的第二個(gè)函數(shù)(mouseleave)。
$("#p1").hover(
    function(){
        alert("你進(jìn)入了 p1!");
    },
    function(){
        alert("拜拜! 現(xiàn)在你離開了 p1!");
    }
);
focus()
  • 當(dāng)元素獲得焦點(diǎn)時(shí),發(fā)生 focus 事件。
  • 當(dāng)通過鼠標(biāo)點(diǎn)擊選中元素或通過 tab 鍵定位到元素時(shí),該元素就會(huì)獲得焦點(diǎn)。
    focus() 方法觸發(fā) focus 事件,或規(guī)定當(dāng)發(fā)生 focus 事件時(shí)運(yùn)行的函數(shù):
$("input").focus(function(){
  $(this).css("background-color","#cccccc");
});
blur()
  • 當(dāng)元素失去焦點(diǎn)時(shí),發(fā)生 blur 事件。
    blur() 方法觸發(fā) blur 事件,或規(guī)定當(dāng)發(fā)生 blur 事件時(shí)運(yùn)行的函數(shù):
$("input").blur(function(){
  $(this).css("background-color","#ffffff");
});

jQuery 獲取內(nèi)容和屬性

  • jQuery 擁有可操作 HTML 元素和屬性的強(qiáng)大方法。

jQuery DOM 操作

  • jQuery 中非常重要的部分,就是操作 DOM 的能力。
  • jQuery 提供一系列與 DOM 相關(guān)的方法,這使訪問和操作元素和屬性變得很容易。
獲得內(nèi)容 - text()、html() 以及 val()
三個(gè)簡(jiǎn)單實(shí)用的用于 DOM 操作的 jQuery 方法:
  • text() - 設(shè)置或返回所選元素的文本內(nèi)容
  • html() - 設(shè)置或返回所選元素的內(nèi)容(包括 HTML 標(biāo)記)
  • val() - 設(shè)置或返回表單字段的值
$("#btn1").click(function(){
  alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
  alert("HTML: " + $("#test").html());
});
$("#btn1").click(function(){
  alert("值為: " + $("#test").val());
});
獲取屬性 - attr()
  • jQuery attr() 方法用于獲取屬性值。
    下面的例子演示如何獲得鏈接中 href 屬性的值:
$("button").click(function(){
  alert($("#runoob").attr("href"));
});

attr 和 prop 的區(qū)別介紹:

  • 對(duì)于 HTML 元素本身就帶有的固有屬性,在處理時(shí),使用 prop 方法。
  • 對(duì)于 HTML 元素我們自己自定義的 DOM 屬性,在處理時(shí),使用 attr 方法。

<a target="_self" class="btn">菜鳥教程</a>

  • 以上這個(gè)例子里 <a> 元素的 DOM 屬性有: href、target 和 class,這些屬性就是 <a> 元素本身就帶有的屬性,也是 W3C 標(biāo)準(zhǔn)里就包含有這幾個(gè)屬性,或者說在 IDE 里能夠智能提示出的屬性,這些就叫做固有屬性。處理這些屬性時(shí),建議使用 prop 方法。

<a href="#" id="link1" action="delete" rel="nofollow">刪除</a>

  • 以上這個(gè)例子里 <a> 元素的 DOM 屬性有: href、id 和 action,很明顯,前兩個(gè)是固有屬性,而后面一個(gè) action 屬性是我們自己自定義上去的,<a> 元素本身是沒有這個(gè)屬性的。這種就是自定義的 DOM 屬性。處理這些屬性時(shí),建議使用 attr 方法。

prop()函數(shù)的結(jié)果:

  • 如果有相應(yīng)的屬性,返回指定屬性值。
  • 2.如果沒有相應(yīng)的屬性,返回值是空字符串。

attr()函數(shù)的結(jié)果:

  • 如果有相應(yīng)的屬性,返回指定屬性值。
  • 如果沒有相應(yīng)的屬性,返回值是 undefined。
對(duì)于HTML元素本身就帶有的固有屬性,在處理時(shí),使用prop方法。
對(duì)于HTML元素我們自己自定義的DOM屬性,在處理時(shí),使用 attr 方法。
具有 true 和 false 兩個(gè)屬性的屬性,如 checked, selected 或者 disabled 使用prop()
設(shè)置內(nèi)容 text()、html() 以及 val()
  • text() - 設(shè)置或返回所選元素的文本內(nèi)容
  • html() - 設(shè)置或返回所選元素的內(nèi)容(包括 HTML 標(biāo)記)
  • val() - 設(shè)置或返回表單字段的值
$("#btn1").click(function(){
    $("#test1").text("Hello world!");
});
$("#btn2").click(function(){
    $("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
    $("#test3").val("RUNOOB");
});

text()、html() 以及 val() 的回調(diào)函數(shù)

$("#btn1").click(function(){
    $("#test1").text(function(i,origText){
        return "舊文本: " + origText + " 新文本: Hello world! (index: " + i + ")"; 
    });
});
 
$("#btn2").click(function(){
    $("#test2").html(function(i,origText){
        return "舊 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")"; 
    });
});

設(shè)置屬性 - attr()

$("button").click(function(){
  $("#runoob").attr("href","http://www.runoob.com/jquery");
});

//同時(shí)設(shè)置多個(gè)值
$("button").click(function(){
    $("#runoob").attr({
        "href" : "http://www.runoob.com/jquery",
        "title" : "jQuery 教程"
    });
});

attr() 的回調(diào)函數(shù)

$("button").click(function(){
  $("#runoob").attr("href", function(i,origValue){
    return origValue + "/jquery"; 
  });
});

jQuery - 添加元素

添加新的 HTML 內(nèi)容

  • append() - 在被選元素的結(jié)尾插入內(nèi)容
  • prepend() - 在被選元素的開頭插入內(nèi)容
  • after() - 在被選元素之后插入內(nèi)容
  • before() - 在被選元素之前插入內(nèi)容
jQuery append() 方法
//jQuery append() 方法在被選元素的結(jié)尾插入內(nèi)容(仍然該元素的內(nèi)部)。
$("p").append("追加文本");
jQuery prepend() 方法
//jQuery prepend() 方法在被選元素的開頭插入內(nèi)容。
$("p").prepend("在開頭追加文本");
//三個(gè)運(yùn)行的結(jié)果是一樣的
function appendText()
{
    var txt1="<p>文本。</p>";              // 使用 HTML 標(biāo)簽創(chuàng)建文本
    var txt2=$("<p></p>").text("文本。");  // 使用 jQuery 創(chuàng)建文本
    var txt3=document.createElement("p");
    txt3.innerHTML="文本。";               // 使用 DOM 創(chuàng)建文本 text with DOM
    $("body").append(txt1,txt2,txt3);        // 追加新元素
}
區(qū)別
append/prepend 是在選擇元素內(nèi)部嵌入。
after/before 是在元素外面追加。

jQuery 刪除元素

  • remove() - 刪除被選元素(及其子元素)
  • empty() - 從被選元素中刪除子元素

remove() 方法

//jQuery remove() 方法刪除被選元素及其子元素。
$("#div1").remove();

empty() 方法

//jQuery empty() 方法刪除被選元素的子元素。
$("#div1").empty();

過濾被刪除的元素

  • jQuery remove() 方法也可接受一個(gè)參數(shù),允許您對(duì)被刪元素進(jìn)行過濾。
  • 該參數(shù)可以是任何 jQuery 選擇器的語法。
    下面的例子刪除 class="italic" 的所有 <p> 元素:
$("p").remove(".italic");

jQuery 尺寸

jQuery 提供多個(gè)處理尺寸的重要方法:

  • width()
  • height()
  • innerWidth()
  • innerHeight()
  • outerWidth()
  • outerHeight()

jQuery width() 和 height() 方法

1、width() 方法設(shè)置或返回元素的寬度(不包括內(nèi)邊距、邊框或外邊距)。
2、height() 方法設(shè)置或返回元素的高度(不包括內(nèi)邊距、邊框或外邊距)。
//下面的例子返回指定的 <div> 元素的寬度和高度:
//實(shí)例
$("button").click(function(){
  var txt="";
  txt+="div 的寬度是: " + $("#div1").width() + "</br>";
  txt+="div 的高度是: " + $("#div1").height();
  $("#div1").html(txt);
});

jQuery innerWidth() 和 innerHeight() 方法

1、innerWidth() 方法返回元素的寬度(包括內(nèi)邊距)。
2、innerHeight() 方法返回元素的高度(包括內(nèi)邊距)
//下面的例子返回指定的 <div> 元素的 inner-width/height:
//實(shí)例
$("button").click(function(){
  var txt="";
  txt+="div 寬度,包含內(nèi)邊距: " + $("#div1").innerWidth() + "</br>";
    txt+="div 高度,包含內(nèi)邊距: " + $("#div1").innerHeight();
  $("#div1").html(txt);
});

jQuery outerWidth() 和 outerHeight() 方法

1、outerWidth() 方法返回元素的寬度(包括內(nèi)邊距和邊框)。
2、outerHeight() 方法返回元素的高度(包括內(nèi)邊距和邊框)。
//下面的例子返回指定的 <div> 元素的 outer-width/height:
//實(shí)例
$("button").click(function(){
  var txt="";
  txt+="div 寬度,包含內(nèi)邊距和邊框: " + $("#div1").outerWidth() + "</br>";
  txt+="div 高度,包含內(nèi)邊距和邊框: " + $("#div1").outerHeight();
  $("#div1").html(txt);
});
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性。 1....
    LaBaby_閱讀 1,505評(píng)論 0 2
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性。 1....
    LaBaby_閱讀 1,274評(píng)論 0 1
  • (續(xù)jQuery基礎(chǔ)(1)) 第5章 DOM節(jié)點(diǎn)的復(fù)制與替換 (1)DOM拷貝clone() 克隆節(jié)點(diǎn)是DOM的常...
    凜0_0閱讀 1,513評(píng)論 0 8
  • jQuery模塊 選擇器、DOM操作、事件、AJAX與動(dòng)畫 匿名函數(shù)自執(zhí)行 作用:解決命名空間與變量污染的問題 總...
    青青玉立閱讀 1,000評(píng)論 0 0
  • 一、樣式篇 第1章 初識(shí)jQuery (1)環(huán)境搭建 進(jìn)入官方網(wǎng)站獲取最新的版本 http://jquery.co...
    凜0_0閱讀 3,673評(píng)論 0 44

友情鏈接更多精彩內(nèi)容