jQuery學習總結歸納
jQuery學習總結歸納
常用版本:jQuery-1.12.4.js(未壓縮) jQuery-1.12.4.min.js(已壓縮)
// 引入jQuery
<script src = 'jQuery-1.12.4.js'></script>
一.jQuery與DOM
1.DOM與jQuery相比:
(1)獲取元素名字太長
(2)程式碼冗餘(for)
(3)onclick註冊事件存在覆蓋問題,addEventListener()註冊事件不存在覆蓋問題,但有相容性問題
(4)沒有動畫效果,如果需要,就必須手動封裝
2.dom物件與jQuery物件的轉換
dom物件和jQuery物件不能混用,轉換
(1)dom物件轉成jQuery物件
$(dom物件)
(2)jQuery物件轉成dom物件
① 通過中括號[]
② get()方法
3.this的使用
this是個dom物件,所以this要使用jQuery的方法,一定要先轉成jQuery物件 $(this)
二.$符號
$的來源:jQuery
型別:函式
作用:根據引數的不同,作用不同
1.選擇器:可以獲取元素 $(‘div’)
2.函式:入口函式的作用 $(function(){})
3.dom物件:將dom物件轉成jQuery物件 $(document)
4.HTML字串:建立節點 $(‘HTML字串’)
多庫共存:jQuery釋放$符號的控制權
// 釋放$符號,並且把$符號的能力給C
var c = $.noConflict();
三.選擇器
1.CSS選擇器(將js中的選擇器放入jQuery的$裡面)
(1)id選擇器 $(’#ZhangSan’)
(2)標籤選擇器 $(‘li’)
(3)類選擇器 $(’.rendering’)
(4)並集選擇器 $(’.xiaoming, #ZhangSan’)
(5)交集選擇器 $(’.xiaoming.handsome’)
(6)子代選擇器 $(’.xiaoming>ol>li’)
(7)後代選擇器 $(‘xiaoming li’)
2.過濾選擇器
(1):odd 從獲取到的元素中過濾出下標為奇數的元素
(2):even 從獲取到的元素中過濾出下標為偶數的元素
(3):first 從獲取到的元素中過濾出第一個元素
(4):lase 從獲取到的元素中過濾出最後一個元素
(5):eq 從獲取到的元素中過濾出指定下標的元素
$('li:odd')
$('li:even')
$('li:first')
$('li:last')
$('li:eq(4)') // 獲取到裡li裡面的第5個元素
3.篩選選擇器
(1)children()
jq提供的children()方法,可以獲取元素內的所有子元素,支援傳參,引數為選擇器,可以根據選擇器篩選出指定的子元素
$(this).children('ul').show();
$(this).chileren('ul').hide();
(2)find() 找後代元素
$(this).find('li')
(3)sibilings() 獲取當前元素的所有兄弟元素,不包含自己
// 排他,突出等
$(this).css('opacity', 1);
$(this).sibings().css('opacity', 5);
// 簡化上面倆行程式碼,鏈式程式設計
$(this).css('opacity', 1).sibings().css('opacity', 5)
(4)next()和nextAll()
下一個兄弟元素和後面所有兄弟元素
(5)prev()和prevAll()
上一個兄弟元素和前面所有兄弟元素
(6)parent() 查詢父元素
(7)eq() 查詢指定下標元素
// 獲取li的第三個元素
$('li').eq(2); // 相當於$('li:eq(2)');
四.樣式操作和屬性操作
1.css()操作
(1)獲取樣式
css(name) // 只能獲取第一個
(2)設定樣式
① css(name, value):
引數:name:樣式名 value:樣式值
② css(obj)
引數:包含多個樣式的物件
// 給li標籤設定樣式
$('li').css('fontSize', '50px');
$('li').css('color':'red', 'fontSize':'50px');
2.class操作
新增類選擇器:addClass()
移除類選擇器:removeClass()
判斷是否有該選擇器:hasClass()
切換類名(有就移除,沒有就新增):toggleClass()
3.屬性attr操作
獲取屬性:attr(name)
設定單個屬性:attr(name, value)
設定多個屬性(引數為物件):attr(obj)
移除屬性:removeAttr(name)
$(selector).attr(attribute)
$(selector).attr(attribute,value)
$(selector).attr({attribute:value, attribute:value ...})
prop方法和attr方法
① 對於表單元素的checked,selected,disable屬性,使用prop操作
② 除了表單元素的三個屬性使用prop方法外,其它都可以使用attr方法
③ 對於自定義屬性,使用attr方法(abc, index)
④ 對固有屬性,使用prop方法(title, id, style, checkd, selected, disable)
五.節點操作
1.新增節點
在元素裡面新增節點的方法:append() appendTo() prepend() prependTo()
(1)append()
語法:parent.append(child);
作用:把children新增到parent裡面,在最後面
$('div').append($('.outerP'))
(2)appendTo()
語法:children.appendTo(parent);
作用:把children新增到parent裡面,在最後面
$('.outerP').appendTo('div')
// 在每個 <p> 元素的結尾插入 <span> 元素
$("<b>Hello World!</b>").appendTo("p");
(3)prepend()
語法:parent.prepend(child);
作用:把children新增到parent裡面,在最前面
$('div').prepend($('.outerP'))
(4)prependTo()
語法:children.prependTo(parent);
作用:把children新增到parent裡面,在最後面
$('.outerP').prependTo('div')
// 在每個 <p> 元素的開頭插入 <span> 元素
$("<span>Hello World!</span>").prependTo("p");
在元素前面後面新增節點的方法:append() appendTo() prepend() prependTo()
(5)after()和before()
A.after(B); 把B放在A前面
A.before(B); 把B放在A前面
$('div').after($($('div p')));
$('div').before($($('div p')));
2.清除節點
empty()
$('div').empty()
3.刪除節點
remove()
$('div').remove();
4.克隆節點
語法:$(selector).clone(true|false)
預設為深拷貝(拷貝元素裡面的內容)
參數列示是否克隆元素的事件,預設不拷貝事件
引數為布林型別值
var $P = $('.outerP').clone(true);
$('div').append($P);
jQuery庫
- $為函式,引數不同,作用不同:
(1) 選擇器:獲取元素 $(“div”)
(2) 函式:作為入口函式 $(function(){ })
(3) DOM物件:轉換成jQuery $(this)
(4) HTML字串:建立節點 $(“HTML字串”) - 選擇器:CSS選擇器 過濾選擇器 篩選選擇器
- CSS樣式操作 class樣式操作 attr(prop)屬性操作
- 新增節點 清空節點 刪除節點
- jQuery的特殊屬性操作:
(1) val方法:設定和獲取表單元素的值($(“input”.val(“表單值”)))
(2) html方法和text方法:同js中的innerHTML和innerText - 動畫:
(1) show系列:show(speed, easing, callback) hide toggle
(2) slide系列(使用同show系列):slideDown slideUp slideToggle
(3) fade系列:fadeIn fadeout fadeToggle
(4) animate(obj, speed, easing, callback)及stop - jQuery事件:簡單事件,bind, delegate, on(type, selector, data, fn) 及off解綁
- 阻止事件傳播與瀏覽器預設行為:return false
- jQuery的特點:隱式迭代(偷偷地遍歷) 鏈式程式設計(通過.繼續操作,end方法(上次返回的物件))
- 事件的迴圈機制:js是一門單執行緒結構(同步非同步問題)
(1) 非同步程式碼:延時器 定時器 註冊事件中的事件處理函式
(2) 巨集任務(script timeout)和微任務(promise):先主執行緒執行完(事件迴圈),再執行非同步程式碼(下一次迴圈) - 外掛:原理:(jQuery的原型:$.fn().外掛名(){ }) 懶載入外掛(引入,配置)等
相關文章
- HTTP標頭學習總結歸納HTTP
- 概率論與數理統計的學習(歸納+總結)
- Vue 路由知識點歸納總結Vue路由
- Python時間格式歸納總結Python
- vsftpd服務的歸納總結FTP
- Oracle的鎖機制歸納總結Oracle
- CPU快取學習及C6678快取使用總結(知識歸納)快取
- XML與JSON學習歸納XMLJSON
- Laravel-admin 問題歸納總結Laravel
- MHA工具的優缺點歸納總結
- 物件導向知識點總結歸納物件
- MYSQL常用的效能指標總結和歸納MySql指標
- 轉貼:Oracle的鎖機制歸納總結Oracle
- Spring歸納小結Spring
- Linux基礎優化與安全歸納總結Linux優化
- PTA7~9題目集總結與歸納
- pt-osc工具的優缺點歸納總結
- SG學習筆記之RMAN簡單歸納筆記
- 線性迴歸演算法學習總結演算法
- 【PyQt5】QTableWidget 的總結與歸納(轉載)QT
- [PyQt5] QTableWidget 的總結與歸納(轉載)QT
- Peer Dependency 一些使用場景的歸納總結
- 動作遊戲戰鬥系統總結歸納&思考(中)遊戲
- 【組合數學】組合數學簡介 ( 組合思想 2 : 數學歸納法 | 數學歸納法推廣 | 多重歸納思想 )
- jquery複習總結二jQuery
- Node模板引擎學習(2)--Jade語法歸納
- 資料結構第一章知識點歸納總結資料結構
- React Fiber原始碼分析 第四篇(歸納總結)React原始碼
- MySQL主從延遲解決方法的歸納和總結MySql
- SQL Azure與SQL Server的異同點總結和歸納SQLServer
- Solr與Elasticsearch的優缺點比較總結和歸納SolrElasticsearch
- 動作遊戲戰鬥系統框架總結歸納&思考(上)遊戲框架
- Java程式設計技巧:if-else優化實踐總結歸納Java程式設計優化
- JavaScript識別符號命名規則總結和保留字歸納JavaScript符號
- 工具歸納
- Java獲取多執行緒執行結果方式的歸納與總結Java執行緒
- 前端學習記錄 1:HTML 基礎知識點歸納前端HTML
- 微軟程式歸納新技術:元程式歸納微軟