1. 程式人生 > >jQuery 基礎知識點梳理

jQuery 基礎知識點梳理

class this fin nts key 工廠函數 .text ddc res

DOM對象:直接使用JavaScript獲取的節點對象: var objDOM = document.getElementById("title"); var objHTML=objDOM.innerHTML; jQuery對象:使用jQuery包裝DOM對象後產生的對象,它能夠使用jQuery中的方法: $("#title").html(); 等同於 document.getElementById("title").innerHTML; DOM對象和jQuery對象分別擁有一套獨立的方法,不能混用 jQuery對象轉DOM對象: 1、jQuery對象是一個類似數組的對象,可以通過[index]的方法得到相應的DOM對象: var $txtName=$(".txtName"); //jQuery對象 var txtName=$txtName[0]; //DOM對象 2、通過get(index)方法得到相應的DOM對象: var $txtName = $(".txtName"); //jQuery對象 var txtName = $txtName.get(0); //DOM對象 使用$()函數進行轉化:$(DOM對象) var txtName=document.getElementById("txtName"); //DOM對象 var $txtName = $(txtName); //jQuery對象 註意: 1、jQuery對象命名一般約定以$開頭 2、常使用$(this)來獲取觸發該事件的當前jQuery對象 JSON(JavaScript Object Notation)一種輕量級的數據交互格式 var JSON = { 名稱:值,名稱:值,...}; //JSON的數值可以是數字、字符串、布爾值、數組或者 對象、null JSON的取值方法: 點號表示法來獲取 追加樣式: addClass("class") 或 addClass(" class1 class2..") 移除樣式: removeClass("class") 或 removeClass("class1 class2 ..") HTML代碼操作: html()可以對HTML代碼進行操作,類似於原生JavaScript中的innerHTML: $("div.left").html(); 或 $("div.left").html("<div class=‘content‘>...</div>"); 文本操作: text()可以獲取或設置元素的文本內容: $("div.left").text(); 或 $("div.left").text("<div class = ‘content‘> ...</div>"); value值操作: val()可以獲取或設置元素的value屬性值: $(input).val(); //獲取value值 或 $(input).val("值"); //設置value值 節點操作: jQuery中節點操作主要分為: 查找節點 創建節點 插入節點 刪除節點 替換節點 復制節點 創建節點元素: 工廠函數$()用於獲取或創建節點: $(selector):通過選擇器獲取節點 $(element):把DOM節點轉化成jQuery節點 $(html):使用HTML字符串創建jQuery節點 var $newNode2=$("<li title=‘標題為千與千尋’>千與千尋</li>"); 創建含文本與屬性<li>元素節點 插入子節點: 元素內部插入子節點: append(content) $(A).append(B)表示將B追加到A中如:$("ul").append($newNode1); appendTo(content) $(A).appendTo(B)表示把A追加到B中如:$newNode1.appendTo(“ul”); prepend(content) $(A).prepend(B)表示將B前置插入到A中如:$("ul").prepend($newNode1); prependTo(content) 插入同輩節點: 元素外部插入同輩節點: after(content) $(A).after(B)表示將B插入到A之後如:$("ul").after($newNode1); insertAfter(content) $(A).insertAfter(B)表示將A插入到B之後如:$newNode1.insertAfter(“ul”); before(content) insertBefore(content) 替換節點: replaceWith()和replaceAll()用於替換節點: 復制節點: clone()用於復制節點: $(A).clone(true).appendTo(B); 提示: clone()有個副作用就是會復制id,要麽避免對有id的元素克隆,要麽使用class代替 id的作用 刪除節點: jQuery提供了三種刪除節點的方法: 1、remove():刪除整個節點 2、detach():刪除整個節點,保留元素的綁定事件、附加的數據 3、empty():清空節點 屬性操作: attr()獲取或設置匹配元素的屬性值: //獲取元素的某屬性的值 $(selector).attr("屬性名"); //設置元素的屬性值 $(selector).attr("屬性名","值");//設置一個屬性值 $(selector).attr({"屬性1":“值1”,“屬性2”,“值2”});//設置多個屬性值 removeAttr()匹配的元素中刪除一個屬性: $(selector).removeAttr("屬性名稱"); 遍歷子元素: children()方法可以用來獲取元素的所有子元素: $("body").children(); //獲取<body>元素的子元素,但不考慮後代元素及文本節點 遍歷同輩元素: jQuery可以獲取緊鄰其後、緊鄰其前和位於該元素前與後的所有同輩元素: next([expr]) 用於獲取緊鄰匹配元素之後的元素,如:$("li:eq(1)").css("background-color","#F06"); prev([expr]) 用於獲取緊鄰匹配元素之前的元素,如:$("li:eq(1)").prev().css("background-color","#F06"); siblings([expr]) 用於獲取位於匹配元素前面和後面的所有同輩元素,如:$("li:eq(1)").siblings().css("background-color","#F06"); 遍歷前輩元素: jQuery中可以遍歷前輩元素,方法: parent() 獲取元素的父級元素 parents() 獲取元素的祖先元素 遍歷--其它方法: jQuery遍歷 - each() : 以每一個匹配的元素作為上下文來執行一個函數: $("img").each(function(i){ this.src = "test" + i + ".jpg"; }) 查找方法 - find() : 搜索所有與指定表達式匹配的元素: $("p").find("span"); //在所有p元素的後代節點中查找span元素 CSS-DOM操作: 除css()外,還有獲取和設置元素高度、寬度、相對位置等的樣式操作方法: height([value]) 設置或返回匹配元素的高度 width([value]) 設置或返回匹配元素的寬度 offset([value]) 返回以像素為單位的top和left坐標。此方法僅對可見元素有效 jQuery的事件: jQuery事件是對JavaScript事件的封裝,常用事件分類如下: 基礎事件: window事件 鼠標事件 鍵盤事件 表單事件 復合事件是多個事件的組合: 鼠標光標懸停 鼠標連續點擊 鼠標事件: click(fn) :單擊鼠標時 mouseover(fn) :鼠標移過時 mouseout(fn) :鼠標移出時 鍵盤事件: keydown(fn) :按下鍵盤時 keyup(fn) :釋放按鍵時 keypress(fn) :產生可打印的字符時 表單事件: focus(fn) :獲得焦點 blur(fn) :失去焦點 submit(fn) :表單提交時 事件綁定: bind()方法 - 事件綁定: $(selector).bind(type[,data],fn) //例如: $("#btn").bind("click",fn); $("#btn").bind("click dblclick",fn); $("#btn").bind({ click:function(){}, mouseover:function(){} }); unbind()方法 - 解除事件綁定: $(selector).unbind() //例如: $("#btn").unbind() $("#btn").unbind("click") $("#btn").unbind("click",handler);//指定的事件處理函數 on()方法 - 事件綁定: $(selector).on(events[,selector][,data],fn) //例如: $("#form").on("click",".btn",{},fn); off()方法 - 解除事件綁定: $(selector).off(events,[selector],[handler]) $(selector).off(events,[selector]) $(selector).off(events) $(selector).off() 註意: 建議用on()方法綁定事件,效率更高 鼠標光標懸停事件: hover(fn1,fn2)方法: 相當於mouseover與mouseout事件的組合 //鼠標在父級菜單移入移出,子菜單隱藏與顯示: $("#parentMenu").hover(function(){ $("#childMenu").css("display","block");//mouseover }, function(){ $("#childMenu").css("display","none");//mouseout } ); 鼠標連續click事件: toggle()方法用於模擬鼠標連續click事件: $("body").toggle( function(){},//第1,4,7...次點擊時觸發 function(){},//第2,5,8...次點擊時觸發 function(){},//第3,6,9...次點擊時觸發 ); jQuery的動畫效果: 1、控制元素顯示與隱藏 2、控制元素淡入淡出 3、改變元素高度 顯示及隱藏元素: show([duration][,complete]) hide([duration][,complete]) $(".tipsbox").show("slow"); 註意: 顯示速度可以取如下值: 毫秒(如1000)、slow、normal、fast 淡入淡出效果: fadeIn()和fadeOut()可以通過改變元素的透明度實現淡入淡出效果 $("input[name=fadein_btn]").click(function(){ $("img").fadeIn("slow"); }); $("input[name=fadeout_btn]").click(function(){ $("img").fadeOut(1000); }); 切換元素可見狀態: toggle()除了可以模擬鼠標的連續單擊事件外,還能用於切換元素的可見狀態 $("li:gt(5):not(:last)").toggle(); 改變元素的高度: slideDown() 可以使元素逐步延伸顯示 slideUp() 則使元素逐步縮短直至隱藏 $("h2").click(function(){ $(".txt").slideUp("slow"); $(".txt").slideDown("slow"); }); 自定義動畫: animate()方法用於創建自定義動畫的函數: $(selector).animate(params [,speed] [,easing] [,fn]); params:規定產生動畫效果的CSS樣式和值 speed:三種預定速度之一的字符串(“slow”,“normal”,“fast”)或表示動畫時長的毫秒數值(如:1000) easing:要使用的擦除效果的名稱(需要插件支持).默認jQuery提供“linear”和“swing” fn:在動畫完成時執行的函數,每個元素執行一次

jQuery 基礎知識點梳理