jQuery基礎(chǔ)的基礎(chǔ)的基礎(chǔ)

jQuery必會(huì)的東西............
感覺最近這幾天都懵懵的 還是記錄一下 防止隨著年齡的增長記憶力退化.......

jquery是啥 jquery就是一個(gè)js文件篡悟。。開發(fā)方便

首先附上jquery官網(wǎng)網(wǎng)址和下載地址

官網(wǎng):http://jquery.com

下載地址:https://code.jquery.com/jquery/
下載之后會(huì)有兩個(gè)文件 一個(gè)有min 一個(gè)沒有min 有min的是壓縮版 在項(xiàng)目上線的時(shí)候使用 沒有min的是開發(fā)版(請?jiān)试S我那么叫他)顧名思義在開發(fā)的時(shí)候使用 代碼可讀性更強(qiáng) 需要在html <script></script>中引入

<script src="./lib/jquery-1.12.4.js"></script>

雖然jQuery有好幾個(gè)版本 但只有1.x系列的兼容IE低版本 2.x和3.x均不支持

emmmm jQuery有什么好處呢....和原生js相比 代碼量少 開發(fā)效率高 在開發(fā)中可以達(dá)到“少寫 多做”的效果 其隱式迭代 可以為我們省下好多寫for循環(huán)的時(shí)間.....鏈?zhǔn)骄幊? 盡管大膽的去點(diǎn)(.)
其次啦。哀蘑。膊夹。主要插件比較多(姨母笑)還可以自己寫插件
更重要的是!!榜苫!選擇器好寫多了 (相對(duì)于原生js)
說到這里.......讓我們回憶一下原生js是怎么寫的
原生js的獲取元素方式:
documen.getElementById (‘’)根據(jù)id名獲取一個(gè)元素 注意 是一個(gè) 不是一堆
document.getElementsByTagName (‘’)根據(jù)標(biāo)簽名獲取一堆元素
document.getElementsByClassName (‘’)根據(jù)class名獲取一堆元素

document.querySelector (‘’)根據(jù)里面寫的選擇器 跌帐,匹配的第一個(gè)元素 如果沒有匹配項(xiàng)首懈,返回null
document.querySelectorAll (‘’)根據(jù)里面寫的選擇器 匹配所有獲取到的一堆元素 如果沒有匹配項(xiàng) 返回空的nodelist(節(jié)點(diǎn)數(shù)組)

ps 上面?zhèn)z返回的結(jié)果是靜態(tài)的绊率,之后對(duì)document結(jié)構(gòu)的改變不會(huì)影響到之前取到的結(jié)果。 這兩個(gè)方法都可以接受三種類型的參數(shù):id(#id) class(.xxx) 標(biāo)簽<></>


-------------------------------------------------------回憶結(jié)束--------------------------------------------

jquery對(duì)象初識(shí):

jquery對(duì)象的標(biāo)志性代表:美元符號(hào) $
這不是美元 代表的是一個(gè)function
在引入jQuery文件的頁面console.log 搜索$或者jquery 會(huì)發(fā)現(xiàn)是 f(selector究履,context) selector 選擇器 context 形參 里面的這倆東西就不多贅述了 不然要說好久= =不符合題目jquery基礎(chǔ)

認(rèn)識(shí)$標(biāo)識(shí)符

  • // ① $ 標(biāo)識(shí)符是一個(gè)函數(shù) function(selector)
  • // ② 選擇器selector,表示將來要接收用戶傳入的字符串格式的選擇器 '#box'
  • // ③ 函數(shù)要調(diào)用 $('#box')
  • // ④ 調(diào)用完畢后滤否,返回一個(gè)jQuery對(duì)象

獲取jquery對(duì)象 :
基本語法: $('選擇器') 返回值是jQuery對(duì)象

jQuery對(duì)象的本質(zhì):是一個(gè)偽數(shù)組 只有l(wèi)ength 索引值等 基本屬性 是有序的


【重點(diǎn)】dom對(duì)象轉(zhuǎn)jQuery對(duì)象

獲取dom對(duì)象在前面寫過了 就不再copy一遍 通過doument.獲取的是dom對(duì)象 dom】對(duì)象只能調(diào)用dom對(duì)象里提供的屬性和方法 不能直接dom對(duì)象去. jQuery里的屬性或者方法
要想轉(zhuǎn)換成jQuery對(duì)象 要在前面加標(biāo)符$(' ');
但是一般沒人會(huì)先用document獲取一下之后再轉(zhuǎn)換成jQuery對(duì)象。最仑。除非是里面寫的是this--當(dāng)前觸發(fā)的事件或事件源藐俺。
同樣 jQuery對(duì)象也只能用自家對(duì)象提供的屬性和方法

【非重點(diǎn)】 jQuery對(duì)象轉(zhuǎn)dom對(duì)象

emmm 其實(shí)也不是轉(zhuǎn) 可以說是拿 因?yàn)槭歉鶕?jù)索引值去找的
語法:jQuery對(duì)象[索引]

!泥彤!記住這里 到后面會(huì)有個(gè)坑 記住 jQuery對(duì)象后面直接跟中括號(hào)[索引值] 是一個(gè)dom對(duì)象S邸!R髁摺菱父!

jQuery注冊事件

還記得dom的注冊事件么。剑逃。onclick onmouseleave這種的
在jquery中 不需要加on 因?yàn)樵谶@里是方法
舉個(gè)小例子:

<body>
    <ul>
        <li>我是一個(gè)可愛的li</li>
        <li>哈哈哈哈哈</li>
        <li>我是一個(gè)可愛的li一號(hào)</li>
        <li>我是一個(gè)可愛的li二號(hào)</li>
        <li>我是一個(gè)可愛的li三號(hào)</li>
        <li>我是一個(gè)可愛的li四號(hào)</li>
        <li>我是一個(gè)可愛的li五號(hào)</li>
        <li>我是一個(gè)可愛的li六號(hào)</li>   
    </ul>
<!-- 先鏈入jquery文件 -->
<!-- emmm  好想吃江邊城外的怪味烤魚 -->
<script src="./lib/jquery-1.12.4.js"></script>
<script>
// 我們要做的效果是 點(diǎn)擊哪個(gè)li  哪個(gè)li就彈框他的文本文字
// 先獲取所有的li  因?yàn)椴挥脤懷h(huán) 直接寫點(diǎn)擊事件 
$('li').click(function(){
    // 用變量接收一下當(dāng)前點(diǎn)擊的li
    // 括號(hào)里是this的話就不用加引號(hào)
    var lis = $(this).text();
    alert(lis);
})
//或者直接連寫也可以
//alert($(this).text()); 

</script>

jQuery的css方法操作樣式

回顧一下在dom中是如何操作css的
dom對(duì)象元素.style.樣式屬性名=值浙宜;

設(shè)置樣式

設(shè)置單個(gè)樣式

jQuery對(duì)象.css(‘name’,‘value’)蛹磺;
設(shè)置單個(gè)樣式的時(shí)候 一定要加‘’引號(hào) 因?yàn)槭亲址? 也就是說 里面不是數(shù)字的 就都要寫成字符串的格式

設(shè)置多個(gè)樣式

jQuery對(duì)象.css({
name:value粟瞬,
name:value,
name:value称开,
name:value

});

設(shè)置多個(gè)的時(shí)候 name value加不加引號(hào)都可以 不同的name:value鍵值對(duì)用逗號(hào)分開

需要注意的一點(diǎn)是:如果name 不加引號(hào) 遇到中間有-的亩钟、多個(gè)單詞組在一起的屬性名 要寫成駝峰

例:font-size 要不寫成加引號(hào)的‘font-size’ 要不去掉中間的- 用駝峰命名法 寫成fontSize

獲取樣式

其實(shí)和設(shè)置是同理的。鳖轰。只不過設(shè)置是傳兩個(gè)參數(shù)進(jìn)去 獲取是傳一個(gè)參數(shù)進(jìn)去
語法:jQuery對(duì)象.css(‘樣式屬性名name’)清酥;
這里的 name 依舊是字符串類型
樣式獲取只能單個(gè)獲取 不能多個(gè)獲取
比如要獲取width 默認(rèn)在console.log里打印的是黑色的 要想變成藍(lán)色的數(shù)字類型 可以加一個(gè) parseInt(jQuery對(duì)象.css.(‘name’));

通過選擇器獲取jQuery對(duì)象

這個(gè)是我們用jQuery寫代碼的基礎(chǔ)

基本選擇器

名稱 用法 描述
ID選擇器 $('#id') 獲取指定ID的元素
類選擇器 $('.class') 獲取同一類class的元素
標(biāo)簽選擇器 $('div') 獲取同一類標(biāo)簽的所有元素
并集選擇器 $('div,p,li') 使用逗號(hào)分隔蕴侣,只要符合條件之一就可焰轻。
交集選擇器 $('div.redClass') 獲取class為redClass的div元素

層級(jí)選擇器

名稱 用法 描述
子代選擇器 $('ul > li') 使用>號(hào),獲取兒子層級(jí)的元素昆雀,注意辱志,并不會(huì)獲取孫子層級(jí)的元素
后代選擇器 $('ul li') 使用空格,代表后代選擇器狞膘,獲取ul下的所有l(wèi)i元素揩懒,包括孫子等

過濾器選擇器

這類選擇器都帶冒號(hào):

名稱 用法 描述
:eq(index) $('li:eq(2)').css('color', 'red') 獲取到的li元素中,選擇索引號(hào)為2的元素挽封,索引號(hào)index從0開始已球。
:odd $('li:odd').css('color', 'red') 獲取到的li元素中,選擇索引號(hào)為奇數(shù)的元素
:even $('li:even').css('color', 'red') 獲取到的li元素中,選擇索引號(hào)為偶數(shù)的元素

關(guān)于odd 和even 一般我們在表格隔行換色的時(shí)候 比如 讓偶數(shù)行變紅色 奇數(shù)行變藍(lán)色 不能寫

$(tbody tr:even).css('background','red')智亮;

這樣出來的是奇數(shù)行變?yōu)樗{(lán)色 因?yàn)?odd和even 是根據(jù)索引值去尋找的
在找用戶看到的偶數(shù)行2 4 6 的時(shí)候 因?yàn)橄聵?biāo)索引值是從0開始的 用戶看到的偶數(shù)行其實(shí)是代碼中的奇數(shù)行 所以 要想實(shí)現(xiàn)奇數(shù)行變藍(lán)色 偶數(shù)行變紅色 就要在奇數(shù)行寫

$('tbody tr:even').css.('background','biue');

在偶數(shù)行寫

$('tbody tr:odd').css.('background','red');

選擇器篩選方法

篩選選擇器的功能與過濾選擇器有點(diǎn)類似忆某,但是用法不一樣,篩選選擇器主要是方法
我們先來一個(gè)小小的頁面

<body>
    <div id="dv">
        <p>哈哈哈</p>
        <p>哈哈哈</p>
        <a href="#"></a>
        <a href="#"></a>
        <h2>喵喵喵</h2>
        <a href="#"></a>
        <a href="#"></a>
        <h3>???</h3>
        <div class="box">
            <p>孫子元素</p>
            <p>孫子元素</p>

        </div>
    </div>
  
</body>

通過 .children() 獲取所有子元素

eg:獲取id為dv的div下的p
一般方法:
$(‘#dv>p’)
用children方法:
$('#dv').chileren('p')

語法:父元素.children(子元素)

補(bǔ)充一下 鼠標(biāo)懸停在方法上的時(shí)候 會(huì)有個(gè)彈框 里面會(huì)告訴你會(huì)有幾種方法去實(shí)現(xiàn)這個(gè) 如果方法后面有問號(hào)阔蛉? 就是括號(hào)里面可選擇寫或者不寫
拿children來說 如果后面的括號(hào)不寫 那么就是去找div下的所有子元素 包括p本身弃舒;如果后面括號(hào)里寫指定的子元素 那么只會(huì)找到指定的子元素(的集合 偽數(shù)組);

通過.find()方法獲取所有后代(子子孫孫)

eg:去獲取id為dv的div 下的所有的p
一般方法:
$('#dv p')
用find方法:
$('#dv').find('p');

語法:jQuery對(duì)象.find(‘必須寫的子元素’)

這里括號(hào)里面必須寫 你問我為什么 因?yàn)榇a提示框里告訴我必須寫状原。聋呢。。

用.next()方法去尋找下一個(gè)兄弟元素

eg:去獲取id為dv的div里面的h2標(biāo)簽的下一個(gè)兄弟元素
用next方法:
$('#dv h2').next()

語法:jQuery對(duì)象.next()颠区;

里面也是可寫可不寫坝冕。。但是我看覺得寫了也沒用 因?yàn)樗徽易约?/p>

用.prev()方法尋找上一個(gè)兄弟元素

eg:去獲取id為dv的div里面的h2標(biāo)簽的上一個(gè)兄弟元素
$('#dv h2 ').prev()

語法:jQuery對(duì)象.prev()瓦呼;

尋找上一個(gè)和尋找下一個(gè)里面也是可寫可不寫。测暗。但是我覺得寫了也沒用 因?yàn)樗徽易约旱闹苯由弦粋€(gè)和直接下一個(gè) 不會(huì)再下面或者上面的一堆里去找央串。

通過.parent()去尋找父元素

eg:去獲取class為box的div的父元素
$('.box').parent()

語法: jQuery對(duì)象.parent();

通過siblings(selector)去尋找不包含自己的兄弟節(jié)點(diǎn)

eg:獲取id為dv的div標(biāo)簽下的h2標(biāo)簽的兄弟節(jié)點(diǎn)
$('#dv h2 ').siblings();

語法:jQuery對(duì)象.siblings()碗啄;

括號(hào)里也是可寫可不寫 不寫是查找所有兄弟節(jié)點(diǎn)的偽數(shù)組 寫的話是查找特定的兄弟元素(偽數(shù)組)质和;

用.index()方法獲取索引值

語法:jQuery對(duì)象.index();

作用;返回一個(gè)數(shù)字 表示當(dāng)前元素在同級(jí)元素這個(gè)數(shù)組里的索引值
這個(gè)偽數(shù)組的長度有多少 取決于這個(gè)html結(jié)構(gòu) 比如說 我一個(gè)大div里有8個(gè)小div 我的長度就是8 最大下標(biāo)為7 你在這個(gè)div下面在來一個(gè)兄弟div 抱歉 和我沒關(guān)系 我管不著了~~

用.eq(index) 查找這個(gè)索引值代表的元素

語法:$('#dv').eq(2) 【推薦使用】

相當(dāng)于 ** $('#dv:eq(2)')** 在里面的index不確定的時(shí)候 需要些index 則需要拼接 但是用上一種方法就不需要
是去查找id為dv的div的第三個(gè)子元素
稚字!注意 有的時(shí)候可能會(huì)不注意就寫成了 $('#dv')[2] 這樣是非常非常錯(cuò)誤的K撬蕖!胆描!因?yàn)檫@個(gè)時(shí)候 你寫的東西已經(jīng)是一個(gè)dom對(duì)象 不是jQuery對(duì)象了L毕搿!

jQuery操作類名

目的:管理類名樣式
在dom對(duì)象中 我們管理類名是:dom對(duì)象.className=‘類名 類名’昌讲;

檢測類名是否存在

語法:jQuery對(duì)象.hasClass(‘類名’)国夜;

返回的是布爾值 即true 或者false true表示有 false表示沒有

添加類名【常用】

語法:jQuery對(duì)象.addClass(‘類名 類名’);

可以添加多個(gè)類名 用空格分隔開

刪除類名【常用】

語法: jQuery對(duì)象 .removeClass(‘類名’)

括號(hào)里也是可選寫或者不寫 寫 就是刪除指定的類名 不寫就是刪除所有類名 括號(hào)里的是參數(shù)

切換類名

語法:jQuery對(duì)象.toggleClass(‘類名’)短绸;

toggle 切換
如果寫進(jìn)去的這個(gè)類名存在 則會(huì)被移除 如果不存在 就會(huì)被添加
一般在同一個(gè)按鈕切換類名使用

啊啊啊啊啊啊啊啊啊 總結(jié)了一下午+一晚上 车吹。。累的一批醋闭。窄驹。。证逻。乐埠。。。饮戳。豪治。。扯罐。负拟。。歹河。掩浙。。秸歧。厨姚。。键菱。谬墙。。经备。拭抬。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末侵蒙,一起剝皮案震驚了整個(gè)濱河市造虎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纷闺,老刑警劉巖算凿,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異犁功,居然都是意外死亡氓轰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門波桩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戒努,“玉大人,你說我怎么就攤上這事镐躲〈⒚担” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵萤皂,是天一觀的道長撒穷。 經(jīng)常有香客問我,道長裆熙,這世上最難降的妖魔是什么端礼? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任禽笑,我火速辦了婚禮,結(jié)果婚禮上蛤奥,老公的妹妹穿的比我還像新娘佳镜。我一直安慰自己,他們只是感情好凡桥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布蟀伸。 她就那樣靜靜地躺著,像睡著了一般缅刽。 火紅的嫁衣襯著肌膚如雪啊掏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天衰猛,我揣著相機(jī)與錄音迟蜜,去河邊找鬼。 笑死啡省,一個(gè)胖子當(dāng)著我的面吹牛娜睛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播卦睹,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼微姊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了分预?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤薪捍,失蹤者是張志新(化名)和其女友劉穎笼痹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酪穿,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凳干,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了被济。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片救赐。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖只磷,靈堂內(nèi)的尸體忽然破棺而出经磅,到底是詐尸還是另有隱情,我是刑警寧澤钮追,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布预厌,位于F島的核電站,受9級(jí)特大地震影響元媚,放射性物質(zhì)發(fā)生泄漏轧叽。R本人自食惡果不足惜苗沧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望炭晒。 院中可真熱鬧待逞,春花似錦、人聲如沸网严。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屿笼。三九已至牺荠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間驴一,已是汗流浹背休雌。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肝断,地道東北人杈曲。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像胸懈,于是被迫代替她去往敵國和親担扑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355