1伏伐、jQuery是什么帕翻?
jQuery是一個(gè)快速鸠补、小巧且功能豐富JavaScript庫。它使HTML文檔的遍歷和操作嘀掸、事件處理紫岩、動畫和Ajax等操作變得更加簡單,并提供了一個(gè)易于使用的API睬塌,可以跨多種瀏覽器工作泉蝌,結(jié)合了多功能性和可擴(kuò)展性。
jQuery中封裝了很多方法揩晴,學(xué)習(xí)jQuery就是學(xué)習(xí)當(dāng)中方法的使用勋陪。
jQuery特性:隱式迭代、鏈?zhǔn)骄幊獭?/p>
2硫兰、如何使用jQuery诅愚?
使用步驟:
(1)引入jQuery文件;
下載jQuery文件:
jQuery官網(wǎng):https://jquery.com/
jQuery版本:
1.x:支持老瀏覽器劫映,比如IE678违孝,停止更新
2.x:不支持老瀏覽器,停止更新
3.x:不支持老瀏覽器泳赋,更新中
引入jQuery代碼:
<script src="jQuery文件路徑"></script>
(2)寫一個(gè)入口函數(shù)雌桑;
入口函數(shù)有兩種寫法:
//寫法1
$(document).ready(function(){
});
//寫法2
$(function(){
});
jQuery入口函數(shù)和JavaScript的入口函數(shù)window.onload的區(qū)別:
a、jQuery入口函數(shù)可以寫多個(gè)祖今,而window.onload只能寫一個(gè)校坑;
b、執(zhí)行時(shí)間不同衅鹿,jQuery入口函數(shù)要先于window.onload函數(shù)執(zhí)行撒踪;因?yàn)閖Query要等待頁面上dom樹加載完后執(zhí)行,window.onload要等待頁面上所有資源(dom樹大渤、外部圖片制妄、圖片等)加載完執(zhí)行。
(3)使用jQuery選擇器找到要操作的元素泵三,進(jìn)行操作耕捞。
3、$是一個(gè)函數(shù)
jQuery文件結(jié)構(gòu):jQuery文件是一個(gè)自執(zhí)行函數(shù)烫幕;
(function(){
window.jQuery=window.$=jQuery; //自執(zhí)行文件給window對象添加一個(gè)jQuery屬性和$屬性
俺抽,$和jQuery是等價(jià)的,是一個(gè)函數(shù)
}());
$是一個(gè)函數(shù)较曼,因此參數(shù)傳遞不同磷斧,效果也不同;
如果參數(shù)傳遞的是一個(gè)匿名函數(shù),就成為了入口函數(shù)弛饭;
如果參數(shù)傳遞的是一個(gè)字符串冕末,就成為了選擇器,也有可能創(chuàng)建一個(gè)標(biāo)簽侣颂;
如果參數(shù)是一個(gè)dom對象档桃,它就會把參數(shù)轉(zhuǎn)換為jQuery對象。
$(function(){
}); //匿名函數(shù)
$('#one') //選擇器
$('<div>我是一個(gè)div</div>') //創(chuàng)建一個(gè)標(biāo)簽
$(dom對象) //將dom對象轉(zhuǎn)換為jQuery對象
4憔晒、dom對象和jQuery對象
dom對象(Document Object Model):文檔對象模型藻肄,定義了訪問HTML文檔對象的一套屬性、方法和事件拒担。
dom對象就是原生js獲取到的對象嘹屯,比如document.getElementById("one");
特點(diǎn):只能調(diào)用dom方法或?qū)傩耘熘耄荒苷{(diào)用jQuery的屬性或方法抚垄。
jQuery對象:利用jQuery選擇器獲取到的對象就是jQuery對象。
特點(diǎn):只能調(diào)用jQuery對象的屬性和方法谋逻,不能調(diào)用原生js的dom對象的屬性和方法;
ps:定義jQuery對象的變量時(shí)桐经,最好使用$開頭毁兆。
jQuery對象是一個(gè)偽數(shù)組,jQuery對象其實(shí)就是dom對象的一個(gè)包裝集阴挣。
dom對象和jQuery對象的相互轉(zhuǎn)換:
//dom對象轉(zhuǎn)jQuery對象
var div1=document.getElementById("one"); /*獲得dom對象*/
var $div1=$(div1); /*將dom對象轉(zhuǎn)換為jQuery對象*/
console.log($div1); /*控制臺輸出*/
//jQuery對象轉(zhuǎn)dom對象
var divs=$('div'); /*獲取jQuery對象*/
//方法1:利用下標(biāo)取出(jQuery對象是dom對象的一個(gè)包裝集)
var div1=divs[0]; /*取出一個(gè)dom對象*/
//方法2:使用jQuery的方法:get()
var div2=divs.get(1); /*參數(shù)為下標(biāo)*/
console.log(div1); /*控制臺輸出*/
console.log(div2); /*控制臺輸出*/
5气堕、獲取、設(shè)置文本內(nèi)容text()
獲取文本:
text()方法不給參數(shù)畔咧,獲取標(biāo)簽的文本茎芭,會獲取到這個(gè)標(biāo)簽中所有的文本,包括后代元素中的文本誓沸;
包含了多個(gè)dom元素的jQuery對象梅桩,通過text()方法獲取文本,會把所有dom元素的文本獲取到拜隧。
$('#div1').text(); /*獲取id為div1的標(biāo)簽中的所有文本*/
$('div').text(); /*獲取頁面中每個(gè)div元素中的文本*/
設(shè)置文本:
text()方法含參數(shù)宿百,參數(shù)就是要設(shè)置的文本,設(shè)置的文本將覆蓋原來的文本洪添;
如果設(shè)置的文本中包含HTML標(biāo)簽垦页,不會被解析出來,仍然是以文本形式顯示干奢;
包含了多個(gè)dom元素的jQuery對象痊焊,通過text()方法設(shè)置文本,會把所有dom元素的文本都設(shè)置上(隱式遍歷)。
$('#div1').text('我是新設(shè)置的文本'); /*將id為div1的標(biāo)簽文本設(shè)置為:我是新設(shè)置的文
本*/
6薄啥、獲取辕羽、設(shè)置樣式css()
獲取樣式:
將css()的參數(shù)設(shè)置為想要獲取的樣式值的樣式名稱;
在IE瀏覽器中罪佳,要獲取邊框這樣的樣式值逛漫,一定要記得給一個(gè)準(zhǔn)確的邊框,比如border-top-width:上邊框?qū)挾龋?br>
獲取包含了多個(gè)dom元素的jQuery對象的樣式赘艳,只能獲取到第一個(gè)dom元素的樣式酌毡。
$('#div1').css('width'); /*獲取id為div1的元素的樣式width*/
$('div').css('width'); /*如果頁面中包含多個(gè)div元素,只能獲取到第一個(gè)div的樣式*/
設(shè)置樣式:
css()參數(shù)為樣式名蕾管、樣式值用來設(shè)置元素的樣式(設(shè)置的樣式是行內(nèi)樣式)枷踏;
設(shè)置包含了多個(gè)dom元素的jQuery對象的樣式,將為所有dom元素設(shè)置給定的樣式掰曾。
//設(shè)置單樣式
$('#div1').css('width','300px');
$('#div1').css('width',300); /*設(shè)置id為div1的元素的width為300px旭蠕,兩種寫法都可以*/
//設(shè)置多樣式
$('#div1').css({
width:300,
'height':'300px',
border:'1px solid pink'
}); /*給id為div1的元素設(shè)置多個(gè)樣式
7、jQuery選擇器
jQuery選擇器返回的是jQuery對象旷坦。
jQuery選擇器分為:基本選擇器掏熬、層級選擇器、過濾選擇器秒梅、篩選選擇器(方法)旗芬。
7.1、基本選擇器
語法:類似于CSS捆蜀;
分為:ID選擇器疮丛、類選擇器、標(biāo)簽選擇器辆它、并集選擇器誊薄、交集選擇器。
$('#id'); //(ID選擇器:獲取id為id的元素)
$('.class'); //(類選擇器:獲取類為class的元素)
$('div'); //(標(biāo)簽選擇器:獲取標(biāo)簽是div的所有元素)
$('div,p,li'); //(并集選擇器:使用逗號隔開锰茉,獲取div,p,li任一元素)
$('div.class'); //(交集選擇器:獲取標(biāo)簽是div且類為class的元素呢蔫,之間不隔開)
7.2、層級選擇器
語法:類似于CSS洞辣;
分為:子代選擇器咐刨、后代選擇器。
//子代選擇器
$('ul>li'); /*使用>隔開扬霜,只獲取兒子層級的元素定鸟,不包括孫子層級等后代層級的
元素,這里只獲取ul標(biāo)簽的兒子層級的li元素*/
//后代選擇器
$('ul li'); /*使用空格隔開著瓶,獲取所有后代層級的元素联予,包括兒子、孫子等后代
層級的元素,這里獲取ul標(biāo)簽所有后代元素li*/
7.3沸久、過濾選擇器
語法:
//:eq(index)
$('li:eq(2)'); /*獲取到li的元素中季眷,選擇索引為2的元素,索引從0開始*/
//:odd
$('li:odd'); /*獲取到li元素中卷胯,選擇索引為奇數(shù)的元素*/
//:even
$('li:even'); /*獲取到的li元素中子刮,選擇索引為偶數(shù)的元素*/
7.4、篩選選擇器(方法)
語法:
//children(selector)
$('ul').children('li'); /*相當(dāng)于子類選擇器窑睁,這里選擇ul標(biāo)簽的兒子層級的li元素*/
//find(selector)
$('ul').find('li'); /*相當(dāng)于后代選擇器挺峡,這里選擇ul標(biāo)簽的所有后代li元素*/
//siblings(selector)
$('#first').siblings('li'); /*查找兄弟節(jié)點(diǎn),不包括自己本身担钮,這里是選擇id為first的
元素的li兄弟節(jié)點(diǎn)*/
//parent()
$('#first').parent(); /*查找父親節(jié)點(diǎn)橱赠,這里是查找id為first的元素的父親節(jié)點(diǎn)*/
//eq(index)
$('li').eq(2); /*相當(dāng)于$('li:eq(2)'),index從0開始*/
//next()
$('li').next(); /*找下一個(gè)兄弟*/
//prev()
$('li').prev(); /*找上一個(gè)兄弟*/
8箫津、mouseenter事件和mouseleave事件
mouseover事件在鼠標(biāo)移動到選取的元素及其子元素上時(shí)觸發(fā)狭姨;
mouseenter事件只有在鼠標(biāo)移動到選取的元素上時(shí)才會觸發(fā);
9苏遥、class類操作
jQuery中的類操作有:添加類饼拍、移除類、判斷類田炭、切換類惕耕;
添加類addClass():
//添加單個(gè)類
$('#div1').addClass('.fontsize');/*為id為div1的元素添加類fontsize*/
//添加多個(gè)類
$('#div1').addClass('.fontsize widthadd');/*為id為div1的元素添加類fontsize和類
widthadd*/
移除類removeClass():
//移除單個(gè)類
$('#div1').removeClass('.fontsize');/*為id為div1的元素移除類fontsize*/
//移除多個(gè)類
$('#div1').removeClass('.fontsize widthadd');/*為id為div1的元素移除類fontsize和
類widthadd*/
//移除所有類
$('#div1').removeClass();
判斷類hasClass():判斷某個(gè)元素是否含有某個(gè)類,返回值true诫肠、false;
$('#div1').hasClass('fontsize'); /*判斷id為div1的元素是否含有類fontsize*/
切換類toggleClass():如果元素有某個(gè)類欺缘,就移除這個(gè)類栋豫;沒有就添加這個(gè)類。
$('#div1').toggleClass('fontsize'); /*如果id為div1的元素沒有類fontsize就為它添加
這個(gè)類谚殊,有的話就移除這個(gè)類*/