1.jQuery入口函數(shù)其他寫法
? 1.? ?$(document).ready(function(){});
? 2.? ?jQuery(document).ready(function(){});
? 2.? ?$(function(){});? //常用的
? 2.? ?jQuery(function(){});
2.jQuery沖突問題
<script></script>可能會引入多個js或者jquery文件
根據(jù)順序不同,優(yōu)先級也不同??赡軙采w前一個,比如$
解決$沖突問題
1.釋放$的使用權(quán)
? ?釋放操作必須在編寫其他jQuery代碼之前編寫
? ?釋放之后就不能使用$,改為使用jQuery
? ?jQuery.noConflict();
? ?jQuery(function(){});
2.自定義一個訪問符號
? var a= jQuery.noConflict();
? ?a(function(){});
3.jQuery核心函數(shù)
?1.接收一個函數(shù)
? ? $(function(){});
?2.接收一個字符串選擇器? (返回一個jQuery對象,對象中保存了找到的DOM元素)
? ? var $div2=$(".box1");
? ? var $div3=$("#box2");
3.接收一個字符串或字符串代碼片段(返回一個jQuery對象,對象中保存了創(chuàng)建的DOM元素)
? ? var $p=$("<p>我是一個段落</p>");
? ? $div2.append($p);
4.接收一個DOM元素(會被包裝成jQuery對象返回給我們)
? ?var span=document.getElementsByTagName("span")[0];
? ?var $span=$(span);
4.jQuery對象
? jQuery是一個偽數(shù)組(有0到length-1的屬性,并且有l(wèi)ength屬性)
5.靜態(tài)方法和實例方法
1.定義一個類
? ? ? ?function AClass(){}
2.給這個類添加一個靜態(tài)方法 ,直接添加給類的就是靜態(tài)方法
? ? ? ?AClass.staticMethod=function()
? ? ? ?{
? ? ? ? ?alert("staticMethod");
? ? ? ?}
? ? ? ?//靜態(tài)方法通過類名調(diào)用
? ? ? ?AClass.staticMethod();
? 3.給這個類添加一個實例方法
? ? ? ?AClass.prototype.instanceMethod=function()
? ?{
? ? ? ? ?alert("instanceMethod");
? ? ? ?}
? //實例方法通過類的實例調(diào)用 創(chuàng)建一個實例(創(chuàng)建一個對象)
? ?var a=new AClass();
? ? a.instanceMethod();
6.靜態(tài)方法each方法
? ?1.利用jQuery的each靜態(tài)方法遍歷數(shù)組
? ? 第一個參數(shù):當前遍歷到的索引,第二個參數(shù):遍歷到的元素
? ? ? var arr=[1,3,5,7,9];
? ? ? $.each(arr, function(index,value) {
? ? ? ? ? ?console.log(index,value);
? ? ? ?});
? 2.利用jQuery的each靜態(tài)方法遍歷偽數(shù)組
? ? ?var obj={0:2,1:4,2:6,3:8,4:10,length:5};
? ? ?$.each(obj, function(index,value) {
? ? ? ? ?console.log(index,value);
? ? ? });
7.靜態(tài)方法map方法
? ?1.利用jQuery的map靜態(tài)方法遍歷數(shù)組
? ?第一個參數(shù):要遍歷的數(shù)組
? ?第二個參數(shù):每遍歷一個元素之后執(zhí)行的回調(diào)函數(shù)?
? ? ? ? ? ? ? ? ? ? ? ? ?回調(diào)函數(shù)的參數(shù): 第一個參數(shù):遍歷到的元素,第二個參數(shù);遍歷到的索引
? ? ???var arr=[1,3,5,7,9];
? ? ? ?$.map(arr,function(value,index)
? ? ?{
? ? ? ? ? console.log(index,value);
? ? ?});
??2.利用jQuery的map靜態(tài)方法遍歷偽數(shù)組
? ? ? var obj={0:2,1:4,2:6,3:8,4:10,length:5};
? ? ? $.map(obj,function(value,index)
? ? ? {
? ? ? ? ? ? ? console.log(index,value);
? ? ? ? ?});
?3.each和map的區(qū)別
? each靜態(tài)方法默認的返回值就是:遍歷誰就返回誰
? map靜態(tài)方法默認的返回值就是一個空數(shù)組
? each靜態(tài)方法不支持在回調(diào)函數(shù)中對遍歷的數(shù)組進行處理
? map靜態(tài)方法可以在回調(diào)函數(shù)中通過return對遍歷的數(shù)組進行處理
8.jQuery中其他靜態(tài)方法
? ?1.$.trim()?
? ? ? 作用:去除字符串兩端的空格
? ? ? 參數(shù):需要去除空格的字符串
? ? ? 返回值:去除空格之后的字符串
? ?2.$.isWindow()
? ? ?作用:判斷傳入的對象是否是window對象
? ? ?返回值:true/false
?? 3.$.isArray()
? ? ?作用:判斷傳入的對象是否是真數(shù)組
? ? ?返回值:true/false
? 4.$.isFunction() (jQuery本質(zhì)是一個函數(shù))
? ? ?作用:判斷傳入的對象是否是一個函數(shù)
? ? ?返回值:true/false
9.靜態(tài)方法holdReady方法
? ? $(function()
? ? {
? ? ? ?alert("ready");
? ? });
? ? $.holdReady(true):暫停ready執(zhí)行
? ? $.holdReady(false): 恢復(fù)ready執(zhí)行
10.jQuery內(nèi)容選擇器
?1. :empty?
? ? ? 作用:找到既沒有文本內(nèi)容也沒有子元素的指定元素
? ? ? var $div=$("div:empty");
?2. :parent
? ? ?作用:找到有文本內(nèi)容或有子元素的指定元素
? ? ?var $div=$("div:parent");
?3. :contains(text)
? ? ?作用:找到包含指定文本內(nèi)容的指定元素
? ? ?var $div=$("div:contains('我是div')");
?4. :has(slelector)
? ? ? 作用:找到包含指定子元素(選擇器)的指定元素
? ? ??var $div=$("div:has('span')");
11.jQuery-attr方法
? ? 1. attr(name | pro | key,val | fn)
? ? 作用:獲取或設(shè)置屬性節(jié)點的值
? ?可以傳遞一個參數(shù),也可以傳遞兩個參數(shù)
? ?如果傳遞一個參數(shù),代表獲取屬性節(jié)點的值
? ?如果傳遞兩個參數(shù),代表設(shè)置屬性節(jié)點的值
? ? var $div=$("span").attr("class");
? ? var $div=$("span").attr("class","box");
? ? var $div=$("span").attr("abc","123");
? ? 注意點:
? ? ?如果是獲取:無論找到多少個元素,都只會返回第一個元素指定的屬性節(jié)點的值
? ? ?如果是設(shè)置:找到多少個元素就會設(shè)置多少個元素
? ? ?如果是設(shè)置:如果設(shè)置的屬性節(jié)點不存在,那么系統(tǒng)會自動新增
? ?2. removeAttr(name)
? ? ?作用:刪除屬性節(jié)點
? ? var $div=$("span").removeAttr("class");
? ? var $div=$("span").removeAttr("class name");?//刪除多個屬性需要用空格隔開刪除class 和 name屬性
12.jQuery-prop方法
?1. prop(name | pro | key,val | fn)?
? ? 特點和attr方法一致
?2.removeProp(name)
? ?特點和removeAttr方法一致
注意事項:prop不僅能夠操作屬性,還能操作屬性節(jié)點
官方推薦在操作屬性節(jié)點時,具有 true 和 false兩個屬性的屬性節(jié)點,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()
13.jQuery操作相關(guān)方法
1.? addClass(class | fn)
? ?作用:添加一個類(如果要添加多個,多個類名之間用空格隔開)
2. removeClass(class | fn)
? ?作用:刪除一個類 (如果像刪除多個,多個類名之間用空格隔開)
3.toggleClass(class|fn[,sw])
? ?作用:切換類 (有就刪除,沒有就添加)
? ?$(function()
? {
? ? ? var btns=document.getElementsByTagName("button");
? ? ?btns[0].onclick=function()
? ? {
? ? ? ? $("div").addClass("class1 class2");
? ? }
? ?btns[1].onclick=function()
? ?{
? ? ? $("div").removeClass("class2 class1");
? ?}
? btns[2].onclick=function()
? {
? ? ?$("div").toggleClass("class2 class1");
? }
? ?});
14. jQuery文本值相關(guān)的方法
? ?1. html([val | fn])
? ? ? ?和原生js中的innerHTML一模一樣
? ?2. text([val | fn])
? ? ? ?和原生js中的innerText一模一樣
? ?3. val([val | fn | array])
? ? ?var btns=document.getElementsByTagName("button");
? ? ?btns[0].onclick=function()
? ?{
? ? ? ?$("div").html("<p>我是段落<span>我是span</span></p>");
? }
? ?btns[1].onclick=function()
? {
? ? ?console.log($("div").html());
? }
? ?btns[2].onclick=function()
?{
? ?$("div").text("<p>我是段落<span>我是span</span></p>");
?}
? btns[3].onclick=function()
{
? ?console.log($("div").text());
}
?btns[4].onclick=function()
?{
? ?$("input").val("請輸入內(nèi)容");
}
?btns[5].onclick=function()
{
? ? console.log($("input").val());
}
15.jQuery操作css樣式的方法
? 1. 逐個設(shè)置
? ? $("div").css("width","100px");
? ? $("div").css("height","100px");
? ? $("div").css("background","red");
? 2. 鏈式設(shè)置? (注意點:鏈式操作如果大于三步,建議分開)?
? ? $("div").css("width","100px").css("height","100px").css("background","red");
??3. 批量設(shè)置
? ? ?$("div").css({
? ? ? ?width:"100px",
? ? ? ?height:"100px",
? ? ? ?background:"red"
? ? });
?4.獲取css樣式值
? ? $("div").css("width" );
16.jQuery尺寸與位置操作
? ? 1.尺寸操作
? ? ?var btns=document.getElementsByTagName("button");
? ? ? ?btns[0].onclick=function()
? ? ? ?{
? ? ? ? ? ?console.log($(".father").width()); //獲取
? ? ? ?}
? ? ? ? ?btns[1].onclick=function()
? ? ? ?{
? ? ? ? ?$(".father").width("500px");? //設(shè)置
? ? ? ?}
? ? 2.位置操作
? ? ? ? offset()?
? ? ? ? ?作用: 獲取或設(shè)置元素距離窗口的偏移位
? ? ? ? ? ? 獲取距離窗口左邊的偏移位? $(".son").offset().left;
? ? ? ? ? ? 獲取距離窗口上邊的偏移位? $(".son").offset().top;
? ? ? ? ? ? 設(shè)置距離窗口左邊的偏移位??$(".son").offset({left:10 });
? ? ? ? ? ??設(shè)置距離窗口上邊的偏移位??$(".son").offset({top:10 });
? ? ?position()? 只能獲取,不能設(shè)置
? ? ? ?作用: 獲取元素距離定位元素的偏移位
? ? ? ? ? ??獲取距離定位元素的偏移位? $(".son").position().left;
? ? ? ? ? ? 獲取距離定位元素的偏移位? $(".son").position().top;
17.jQuery的scrollTop方法
? 1.獲取滾動的偏移位
? ? $(".scroll").scrollTop()
? 2.設(shè)置滾動的偏移位
? ? $(".scroll").scrollTop("300");
? 3.獲取網(wǎng)頁滾動的偏移位 (為了保證瀏覽器的兼容性需要按照如下寫法)
? ? $("body").scrollTop()+$("html").scrollTop());
? 4.設(shè)置網(wǎng)頁滾動偏移位 (為了保證瀏覽器的兼容,設(shè)置網(wǎng)頁滾動偏移位的時候必須按照如下寫法)
? ?$("html,body").scrollTop(300);