jQuery知識點學習整理
一、jQuery和JS入口函式的區別
1.原生js和jQuery入口函式載入模式不同
原生js會等到DOM元素載入完畢,並且圖片也載入完畢才會執行
jQuery會等到DOM元素載入完畢,但不會等到圖片也載入完畢就會執行
2.多個入口函式的覆蓋問題
原生js如果編寫了多個入口函式,後面編寫的會覆蓋前面編寫的
jQuery中編寫了多個入口函式,後面的不會覆蓋前面的
二、jQuery入口函式其他寫法
1.第一種寫法:
$(document).ready(function () {
//do sth
});
2.第二種寫法:
jQuery(document).ready(function () {
//do sth
});
3.第三種寫法:(推薦)
$(function () {
//do sth
});
4.第四種寫法:
jQuery(function () {
//do sth
});
三、jQuery的"$"符號衝突問題解決方法
1.釋放$的使用權
jQuery.noConflict();
attention:
釋放操作必須在編寫其它jQuery程式碼之前編寫
釋放之後就不能再使用$,改為使用jQuery
2.自定義一個訪問符號
var nj = jQuery.noConflict();
nj(function () {
//do sth
});
四、jQuery的核心函式
$();就代表呼叫jQuery的核心函式
1.接收一個函式 $(function () {});
2.接收一個字串
2.1 接收一個字串選擇器 var $box1 = $(".box1");
2.2 接收一個字串程式碼片段 var $p = $("<p>我是段落</p>"); $box1.append($p);
2.3 接收一個DOM元素 var span = document.getElementByTagName("span")[0]; var $span = $(span);
(會被包裝成一個jQuery物件=>是個偽陣列)
五、jQuery靜態方法與例項方法
原生js的靜態方法與例項方法:
靜態方法:直接新增到類上的方法;通過類名呼叫;
例項方法:直接新增到原型上的方法;通過建立類的物件呼叫;
1.靜態方法——each
原生: arr.forEach(function (value, index) {}) //只能遍歷陣列,不能遍歷物件/偽陣列
jQuery:$.each(arr, function(index, value) {}) //先遍歷index,後遍歷值;可遍歷物件/偽陣列
2.靜態方法——map
原生: arr.map(function (index, value, array) {}); //只能遍歷陣列,不能遍歷物件/偽陣列
jQuery:$.map(arr, function (value, index) {}); //先遍歷index,後遍歷值;可遍歷物件/偽陣列
3.map和each的區別
each預設返回值是所遍歷的物件;不支援在回撥函式中對所遍歷的陣列進行處理
map預設的返回值是空陣列;支援在回撥函式中通過return對所遍歷的陣列進行處理,並返回一個新陣列
3.靜態方法——trim
$.trim(str); //去字串兩端的空格
4.靜態方法——isWindow
$.isWindow(); //判斷是不是window物件
5.靜態方法——isArray
$.isArray(arr); //判斷是不是Array
6.靜態方法——isFunction
$.isFunction(fn); //判斷是不是函式
注意:jQuery框架本質上是一個匿名函式
(function (window, undefined) {
//jQuery框架內容
})( window );
7.靜態方法——holdReady
$.holdReady(true); //暫停ready事件執行
$.holdReady(false); //恢復ready事件執行
六、jQuery的內容過濾選擇器
1.:empty
$("div:empty"); //找到既沒有文字內容也沒有子元素的指定元素
2.:parent
$("div:parent"); //找到有文字內容或有子元素的指定元素
3.:contains(text)
$("div:contains('我是div')"); //找到包含指定文字內容的指定元素
4.:has(selector)
$("div:has('span')"); ////找到包含指定子元素的指定元素
—— 待更新 ——