jQuery基礎教程
jQuery語法
-
基礎語法:$(selector).action()
- 美元符號定義jQuery
- 選擇符查詢和查詢HTML元素
- jQuery的action執行對元素的操作
jQuery選擇器
-
元素選擇器
- $(“p”)選擇頁面上的<p>元素
-
#id選擇器
- $(“#test”)選擇頁面上有id=”test”屬性的元素
-
.class選擇器
- $(“.test”)選擇頁面上有class=“test”屬性的元素
-
其他
- $(“*”)選擇所有元素
- $(this)選取當前HTML元素
- $(“p.intro”)選取class為intro的<p>元素
- $(“p:first”)選取第一個<p> 元素
- $(“ul li:first”)選取第一個 <ul> 元素的第一個 <li> 元素
- $(“ul li:first-child”)選取每個 <ul> 元素的第一個 <li> 元素
- $(“[href]”)選取帶有 href 屬性的元素
- $(“a[target=`blank`]”)選取所有 target 屬性值等於 “blank” 的 <a> 元素
- $(“a[target!=`blank`]”)選取所有 target 屬性值不等於 “blank” 的 <a> 元素
- $(“:button”)選取所有 type=”button” 的 <input> 元素 和 <button> 元素
- $(“tr:even”)選取偶數位置的 <tr> 元素
- $(“tr:odd”)選取奇數位置的 <tr> 元素
jQuery事件
-
滑鼠事件
-
click點選
$("p").click(function(){ alert("段落被點選了。"); });
-
dbclick雙擊
$("p").dblclick(function(){ alert("這個段落被雙擊。"); });
-
mouseenter滑鼠移入
$("p").mouseenter(function(){ $("p").css("background-color","yellow"); });
-
mouseleave滑鼠移出
$("p").mouseleave(function(){ $("p").css("background-color","gray"); });
-
-
鍵盤事件
-
keypress按下
$("input").keypress(function(){ $("span").text(i+=1); });
-
keydown按下的過程
$("input").keydown(function(){ $("input").css("background-color","yellow"); });
-
keyup鍵盤松開
$("input").keyup(function(){ $("input").css("background-color","pink"); });
-
hover懸停
$("p").hover(function(){ $("p").css("background-color","yellow"); },function(){ $("p").css("background-color","pink"); });
-
-
表單事件
-
submit提交
$("form").submit(function(){ alert("提交"); });
-
change文字內容變化
$("input").change(function(){ alert("文字已被修改"); });
-
focus獲取焦點
$("input").focus(function(){ $("span").css("display","inline").fadeOut(2000); });
-
blur失去焦點
$("input").blur(function(){ alert("輸入框失去了焦點"); });
-
-
文件視窗事件
-
load載入(在jQuery1.8中已被廢棄)
$("img").load(function(){ alert("圖片已載入"); });
-
resize視窗調整大小
$(window).resize(function(){ $(`span`).text(x+=1); });
-
scroll滾動指定元素
$("div").scroll(function(){ $("span").text(x+=1); });
-
unload離開頁面、點選某個離開的連結、鍵入新的URL、使用前進或後退按鈕、關閉瀏覽器視窗、重新載入頁面(在jQuery1.8中已被廢棄)
$(window).unload(function(){ alert("Goodbye!"); });
-
jQuery效果
jQuery隱藏/顯示
-
hide隱藏
- $(selector).hide(speed,callback)
$("#hide").click(function(){ $("p").hide(); }); $("button").click(function(){ $("p").hide(1000); });
-
show顯示
- $(selector).show(speed,callback)
$("#show").click(function(){ $("p").show(); });
-
toogle切換狀態
- $(selector).toggle(speed,callback);
$("button").click(function(){ $("p").toggle(); });
jQuery淡入淡出
-
fadeIn淡入已隱藏的元素
- $(selector).fadeIn(speed,callback);
$("button").click(function(){ $("#div1").fadeIn(); $("#div2").fadeIn("slow"); $("#div3").fadeIn(3000); });
-
fadeOut淡出可見的元素
- $(selector).fadeOut(speed,callback);
$("button").click(function(){ $("#div1").fadeOut(); $("#div2").fadeOut("slow"); $("#div3").fadeOut(3000); });
-
fadeToggle切換淡入淡出
- $(selector).fadeToggle(speed,callback);
$("button").click(function(){ $("#div1").fadeToggle(); $("#div2").fadeToggle("slow"); $("#div3").fadeToggle(3000); });
-
fadeTo允許漸變為給定的不透明度
- $(selector).fadeTo(speed,opacity,callback);
$("button").click(function(){ $("#div1").fadeTo("slow",0.15); $("#div2").fadeTo("slow",0.4); $("#div3").fadeTo("slow",0.7); });
jQuery滑動
-
slideDown向下滑動
- $(selector).slideDown(speed,callback);
$("#flip").click(function(){ $("#panel").slideDown(); });
-
slideUp向上滑動
- $(selector).slideUp(speed,callback);
$("#flip").click(function(){ $("#panel").slideUp(); });
-
slideToggle切換滑動效果
- $(selector).slideToggle(speed,callback);
$("#flip").click(function(){ $("#panel").slideToggle(); });
jQuery動畫
-
animate
-
$(selector).animate({params},speed,callback)
$("button").click(function(){ $("div").animate({left:`250px`}); });
-
操作多個屬性
$("button").click(function(){ $("div").animate({ left:`250px`, opacity:`0.5`, height:`150px`, width:`150px` }); });
-
使用相對值
$("button").click(function(){ $("div").animate({ left:`250px`, height:`+=150px`, width:`+=150px` }); });
-
使用預定義的值
$("button").click(function(){ $("div").animate({ height:`toggle` }); });
-
使用佇列功能
$("button").click(function(){ var div=$("div"); div.animate({height:`300px`,opacity:`0.4`},"slow"); div.animate({width:`300px`,opacity:`0.8`},"slow"); div.animate({height:`100px`,opacity:`0.4`},"slow"); div.animate({width:`100px`,opacity:`0.8`},"slow"); }); $("button").click(function(){ var div=$("div"); div.animate({left:`100px`},"slow"); div.animate({fontSize:`3em`},"slow"); });
-
jQuery停止動畫
-
stop
-
$(selector).stop(stopAll,goToEnd)
$("#stop").click(function(){ $("#panel").stop(); });
-
jQuery Callback
$("button").click(function(){
$("p").hide("slow",function(){
alert("段落現在被隱藏了");
});
});
//以下例項沒有回撥函式,警告框會在隱藏效果完成前彈出
$("button").click(function(){
$("p").hide(1000);
alert("段落現在被隱藏了");
});
jQuery鏈
$("#p1").css("color","red").slideUp(2000).slideDown(2000);
jQuery HTML
jQuery捕獲
-
text()設定或返回所選元素的文字內容
$("#btn1").click(function(){ alert("Text: " + $("#test").text()); });
-
html()設定或返回所選元素的內容(包括HTML標記)
$("#btn2").click(function(){ alert("HTML: " + $("#test").html()); });
-
val()設定或返回表單欄位的值
$("#btn1").click(function(){ alert("值為: " + $("#test").val()); });
-
attr()設定或改變屬性值
$("button").click(function(){ alert($("#runoob").attr("href")); });
jQuery設定
-
text()設定或返回所選元素的文字內容
$("#btn1").click(function(){ $("#test1").text("Hello world!"); }); $("#btn1").click(function(){ $("#test1").text(function(i,origText){ return "舊文字: " + origText + " 新文字: Hello world! (index: " + i + ")"; }); });
-
html()設定或返回所選元素的內容(包括HTML標記)
$("#btn2").click(function(){ $("#test2").html("<b>Hello world!</b>"); }); $("#btn2").click(function(){ $("#test2").html(function(i,origText){ return "舊 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")"; }); });
-
val()設定或返回表單欄位的值
$("#btn3").click(function(){ $("#test3").val("RUNOOB"); });
-
attr()設定或改變屬性值
$("button").click(function(){ $("#runoob").attr("href","http://www.runoob.com/jquery"); }); $("button").click(function(){ $("#runoob").attr({ "href" : "http://www.runoob.com/jquery", "title" : "jQuery 教程" }); });
jQuery新增元素
-
append()在被選元素的結尾插入內容
$("p").append("追加文字");
-
prepend()在被選元素的開頭插入內容
$("p").prepend("在開頭追加文字"); function appendText() { var txt1="<p>文字。</p>"; // 使用 HTML 標籤建立文字 var txt2=$("<p></p>").text("文字。"); // 使用 jQuery 建立文字 var txt3=document.createElement("p"); txt3.innerHTML="文字。"; // 使用 DOM 建立文字 text with DOM $("body").append(txt1,txt2,txt3); // 追加新元素 }
-
after()在被選元素之後插入內容
$("img").after("在後面新增文字");
-
before()在被選元素之前插入內容
$("img").before("在前面新增文字"); function afterText() { var txt1="<b>I </b>"; // 使用 HTML 建立元素 var txt2=$("<i></i>").text("love "); // 使用 jQuery 建立元素 var txt3=document.createElement("big"); // 使用 DOM 建立元素 txt3.innerHTML="jQuery!"; $("img").after(txt1,txt2,txt3); // 在圖片後新增文字 }
jQuery刪除元素
-
remove()刪除被選元素及其子元素
$("#div1").remove(); $("p").remove(".italic");
-
empty()從被選元素中刪除子元素
$("#div1").empty();
jQuery CSS類
-
addClass()向被選元素新增一個或多個類
$("button").click(function(){ $("h1,h2,p").addClass("blue"); $("div").addClass("important"); }); $("button").click(function(){ $("body div:first").addClass("important blue"); });
-
removeClass()從被選元素刪除一個或多個類
$("button").click(function(){ $("h1,h2,p").removeClass("blue"); });
-
toggleClass()對被選元素進行新增/刪除類的切換操作
$("button").click(function(){ $("h1,h2,p").toggleClass("blue"); });
-
css()設定或返回樣式屬性
$("p").css("background-color");
jQuery css()方法
-
返回CSS屬性
-
css(“propertyname”);
$("p").css("background-color");
-
-
設定CSS屬性
-
css(“propertyname”,”value”);
$("p").css("background-color","yellow");
-
-
設定多個CSS屬性
-
css({“propertyname“:”value“,”propertyname“:”value“,…});
$("p").css({"background-color":"yellow","font-size":"200%"});
-
jQuery尺寸
-
width()設定或返回元素的寬度(不包括內邊距、邊框或外邊距)
$("button").click(function(){ var txt=""; txt+="div 的寬度是: " + $("#div1").width() + "</br>"; txt+="div 的高度是: " + $("#div1").height(); $("#div1").html(txt); });
-
height()設定或返回元素的高度(不包括內邊距、邊框或外邊距)
$("button").click(function(){ var txt=""; txt+="div 的寬度是: " + $("#div1").width() + "</br>"; txt+="div 的高度是: " + $("#div1").height(); $("#div1").html(txt); });
-
innerWidth()返回元素的寬度(包括內邊距)
$("button").click(function(){ var txt=""; txt+="div 寬度,包含內邊距: " + $("#div1").innerWidth() + "</br>"; txt+="div 高度,包含內邊距: " + $("#div1").innerHeight(); $("#div1").html(txt); });
-
innerHeight()返回元素的高度(包括內邊距)
$("button").click(function(){ var txt=""; txt+="div 寬度,包含內邊距: " + $("#div1").innerWidth() + "</br>"; txt+="div 高度,包含內邊距: " + $("#div1").innerHeight(); $("#div1").html(txt); });
-
outerWidth()返回元素的寬度(包括內邊距和邊框)
$("button").click(function(){ var txt=""; txt+="div 寬度,包含內邊距和邊框: " + $("#div1").outerWidth() + "</br>"; txt+="div 高度,包含內邊距和邊框: " + $("#div1").outerHeight(); $("#div1").html(txt); });
-
outerHeight()返回元素的高度(包括內邊距和邊框)
$("button").click(function(){ var txt=""; txt+="div 寬度,包含內邊距和邊框: " + $("#div1").outerWidth() + "</br>"; txt+="div 高度,包含內邊距和邊框: " + $("#div1").outerHeight(); $("#div1").html(txt); });
jQuery遍歷
jQuery祖先
-
parent()被選中元素的直接父元素
$(document).ready(function(){ $("span").parent(); });
-
parents()被選中元素的所有祖先元素
$(document).ready(function(){ $("span").parents(); }); $(document).ready(function(){ $("span").parents("ul"); });
-
parentsUntil()介於兩個給定元素之間的所有祖先元素
$(document).ready(function(){ $("span").parentsUntil("div"); });
jQuery後代
-
children()被選元素的所有直接子元素
$(document).ready(function(){ $("div").children(); }); $(document).ready(function(){ $("div").children("p.1"); });
-
find()被選元素的後臺元素,一路向下直到最後一個後代
$(document).ready(function(){ $("div").find("span"); }); $(document).ready(function(){ $("div").find("*"); });
jQuery同胞
-
siblings()被選元素的所有同胞元素
$(document).ready(function(){ $("h2").siblings(); }); $(document).ready(function(){ $("h2").siblings("p"); });
-
next()被選元素的下一個同胞元素
$(document).ready(function(){ $("h2").next(); });
-
nextAll()被選元素所有跟隨的同胞元素
$(document).ready(function(){ $("h2").nextAll(); });
-
nextUntil()介於兩個給定引數之間的所有跟隨的同胞元素
$(document).ready(function(){ $("h2").nextUntil("h6"); });
-
prev()被選元素的前一個同胞元素
$(document).ready(function(){ $("h2").prev(); });
-
prevAll()被選元素所有前面的同胞元素
$(document).ready(function(){ $("h2").prevAll(); });
-
prevUntil()介於兩個給定引數之間的所有前面的同胞元素
$(document).ready(function(){ $("h2").prevUntil("h6"); });
JQuery過濾
-
first()被選元素的首個元素
$(document).ready(function(){ $("div p").first(); });
-
last()被選元素的最後一個元素
$(document).ready(function(){ $("div p").last(); });
-
eq()被選元素中帶有指定索引號的元素
$(document).ready(function(){ $("p").eq(1); });
-
filter()根據給定標準刪除不匹配元素,返回匹配元素
$(document).ready(function(){ $("p").filter(".url"); });
-
not()返回不匹配元素
$(document).ready(function(){ $("p").not(".url"); });
jQuery Ajax
-
load()從伺服器載入資料,將返回元素放入被選元素中
-
$(selector).load(URL,data,callback);
$("#div1").load("demo_test.txt"); $("#div1").load("demo_test.txt #p1"); $("button").click(function(){ $("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){ if(statusTxt=="success") alert("外部內容載入成功!"); if(statusTxt=="error") alert("Error: "+xhr.status+": "+xhr.statusText); }); });
-
-
get()
-
$.get(URL,callback);
$("button").click(function(){ $.get("demo_test.php",function(data,status){ alert("資料: " + data + " 狀態: " + status); }); });
-
-
post()
-
$.post(URL,data,callback);
$("button").click(function(){ $.post("/try/ajax/demo_test_post.php", { name:"菜鳥教程", url:"http://www.runoob.com" }, function(data,status){ alert("資料: " + data + " 狀態: " + status); }); });
-
jQuery其他
-
noConflict()會釋放對 $ 識別符號的控制,這樣其他指令碼就可以使用它了
$.noConflict(); jQuery(document).ready(function(){ jQuery("button").click(function(){ jQuery("p").text("jQuery 仍然在工作!"); }); }); var jq = $.noConflict(); jq(document).ready(function(){ jq("button").click(function(){ jq("p").text("jQuery 仍然在工作!"); }); }); $.noConflict(); jQuery(document).ready(function($){ $("button").click(function(){ $("p").text("jQuery 仍然在工作!"); }); });