Jquery
-
什麼是 JQuery :
- jQuery 是一個快速、簡潔的 JavaScript 框架,是繼 Prototype 之後又一個優秀的 JavaScript 代碼庫( 或 JavaScript 框架 )。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 JavaScript 常用的功能代碼,提供一種簡便的 JavaScript 設計模式,優化HTML文檔操作、事件處理、動畫設計和Ajax交互。
- jQuery 的核心特性可以總結爲:具有獨特的鏈式語法和短小清晰的多功能接口;具有高效靈活的 css 選擇器,並且可對 CSS 選擇器進行擴展;擁有便捷的插件擴展機制和豐富的插件。jQuery 兼容各種主流瀏覽器,如google,IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等
-
JQuery的作用:
- 寫更少的代碼,做更多的事情: write Less ,Do more
- 將我們頁面的 JS 代碼和 HTML 頁面代碼進行分離
- JQ 中根據 ID 查找元素
-
全都是根據選擇器去找的 #ID{} .類名{} $("#ID的名稱")
- JQ 和 JS 之間的轉換
- JQ 對象,只能調用 JQ 的屬性和方法
- JS 對象 只能調用 JS 的屬性和方法
-
function changeJS(){ var div = document.getElementById("div1"); // div.innerHTML = "JS成功修改了內容" //將JS對象轉成JQ對象 $(div).html("轉成JQ對象來修改內容") } $(function(){ //給按鈕綁定事件 $("#btn2").click(function(){ //找到div1 // $("#div1").html("JQ方式成功修改了內容"); //將JQ對象轉成JS對象來調用 var $div = $("#div1"); // var jsDiv = $div.get(0); var jsDiv = $div[0]; jsDiv.innerHTML="jq轉成JS對象成功"; }); });
-
JQ 的開發步驟: (將我們頁面的JS代碼和HTML頁面代碼進行分離)
- 導入 JQ 相關的文件
- 文檔加載完成事件: $ ( function ) : 頁面初始化的操作: 綁定事件, 啓動頁面定時器
- 確定相關操作的事件
- 事件觸發函數
- 函數裏面再去操作相關的元素
- 顯示和隱藏 img.style.display
-
使用 JQuery 完成頁面定時彈出廣告(定時器):
- setInterval clearInterval
- setTimeout clearTimeout
- 顯示: img.style.display = "block"
- 隱藏: img.style.display = "none"
-
img 對象
- style屬性: style對象
-
使用JQuery完成表格的隔行換色
-
獲得所有的行
- table.rows[]
-
修改行的顏色
- row.bgColor ="red"
- row.style.backgroundColor = "black"
- row.style.background = "red"
- "background-color:red"
- "background : red"
-
-
使用 JQuery 完成複選框的全選效果
- checked 屬性
-
如何獲取所有複選框:
- document.getElementsByName get Elements By Name 數據庫裏
-
使用JQuery完成省市聯動效果
- JS中的數組: ["城市"]
- new Array()
-
DOM樹操作:
- 創建節點: document.createElement
- 創建文本節點: document.createTextNode
- 添加節點: appendChild()
-
使用JQuery完成下列列表左右選擇
- select下拉列表
- multiple 允許多選
- ondblclick : 雙擊事件
- for 循環遍歷,一邊遍歷一邊移除出現的問題
-
使用JQuery完成表單的校驗(擴展),事件:
- 獲得焦點事件: onfocus
- 失去焦點事件: onblur
- 按鍵擡起事件: onkeyup
- 鼠標移入: onmouseenter
- 鼠標移出: onmouseout
- JS 引入外部文件 : script
-
使用JQuery完成頁面定時彈出廣告, 當用戶打開界面,3秒鐘之後彈出廣告,這個廣告顯示5秒鐘,隱藏廣告
- 定時器: setTimeout
- 顯示和隱藏: style.display = " block / none "
【JQ中的動畫效果】
-
show : 顯示
hide : 隱藏
slideDown: 向下滑動
slideUp: 向上滑動
fadeIn:淡入
fadeOut:淡出
animate : 自定義動畫
- 舉例:定時彈出廣告
<script>
//顯示廣告
function showAd(){
$("#img1").slideDown(2000);
setTimeout("hideAd()",3000);
}
//隱藏廣告
function hideAd(){
$("#img1").slideUp(2000);
}
$(function(){
setTimeout("showAd()",3000);
});
</script>
-
JQuery中的選擇器,讓我們能夠更加精確找到我們要操作的元素 ,
基本選擇器:
基本選擇器是JQuery中最常用的選擇器,也是最簡單的選擇器,它通過元素id、class 和標籤名來查找DOM元素。這個非常重要,下面的內容都是以此爲基礎,逐級提高的。
1).ID選擇器 : #ID的名稱“$(“#id”)”,獲取id指定的元素,id是全局唯一的,所以它只有一個成員。
2).類選擇器: 以 . 開頭 .類名:“$(“.class”)”,獲取class指定的元素,不同的元素可以具有相同的class屬性,所以它可能具有多個成員。
3).元素選擇器: 標籤的名稱:“$(“element”)”,獲取element(元素名,比如div、table等)指定的元素,它可能具有多個成員。
4).通配符選擇器: *:“$(“*”)”,獲取所有元素,相當於document。
5).“$(“selector1,selector2,…,selectorN”)”,將每個選擇器匹配到的元素合併後一起返回。返回selector1匹配的集合+selector2匹配的集合+…+selectorN匹配的集合。
<script>
//文檔加載事件,頁面初始化的操作
$(function(){
//初始化操作: 給按鈕綁定事件
$("#btn1").click(function(){
$("#two").css("background-color","palegreen");
});
//找出mini類的所有元素
$("#btn2").click(function(){
$(".mini").css("background-color","palegreen");
});
$("#btn3").click(function(){
$("div").css("background-color","palegreen");
});
$("#btn4").click(function(){
$("*").css("background-color","palegreen");
});
/*選擇器分組*/
//找出mini類 和 span元素
$("#btn5").click(function(){
$(".mini,span").css("background-color","palegreen");
});
});
</script>
-
JQ中的層級選擇器
- 子元素選擇器: 選擇器1 > 選擇器2 , 找出來的是所有子節點 ,兒子(只包含第一層子元素),“$(“parent > child”)”
- 後代選擇器: 選擇器1 選擇器2 ,找出來的是選擇器1下面的所有選擇器2 ,“$(“ancestor descendant”)”
- 相鄰兄弟選擇器 : 選擇器1 + 選擇器2 : 找出緊挨着的一個下一層子元素 ,“$(“pre + next”)”
- 找出所有弟弟: 選擇器1~ 選擇器2 : 找出所有的 ,“$(“pre ~ siblings”)”
<script>
//文檔加載事件,頁面初始化的操作
$(function(){
//初始化操作: 給按鈕綁定事件
//找出body下面的子div
$("#btn1").click(function(){
$("body > div").css("background-color","palegreen");
});
//找出body下面的所有div
$("#btn2").click(function(){
$("body div").css("background-color","palegreen");
});
$("#btn3").click(function(){
$("#one+div").css("background-color","palegreen");
});
$("#btn4").click(function(){
$("#two~div").css("background-color","palegreen");
});
});
</script>
-
JQ 中的過濾選擇器
(1). 基本過濾選擇器
-
a) “:first”,選取第一個元素,別忘記它也是被放在一個集合裏哦!因爲JQuery它是DOM對象的一個集合。如,“$("tr:first")”返回所有tr元素的第一個tr元素,它仍然被保存在集合中。
b) “:last”,選取最後一個元素。如,“$("tr:last")”返回所有tr元素的最後一個tr元素,它仍然被保存在集合中。
c) “:not(selector)”,去除所有與給定選擇器匹配的元素。如,“$("input:not(:checked)")”返回所有input元素,但去除被選中的元素(單選框、多選框)。
d) “:even”,選取所有元素中偶數的元素。因爲JQuery對象是一個集合,這裏的偶數指的就是集合的索引,索引從0開始。
e) “:odd”,選取所有元素中奇數的元素,索引從0開始。
f) “:eq(index)”,選取指定索引的元素,索引從0開始。
g) “:gt(index)”,選取索引大於指定index的元素,索引從0開始。
h) “:lt(index)”,選取索引小於指定index的元素,索引從0開始。
i) “:header”,選取所有的標題元素,如hq、h2等。
j) “:animated”,選取當前正在執行的所有動畫元素。
<script>
$(function(){
/<script>
//文檔加載事件,頁面初始化的操作
$(function(){
//初始化操作: 給按鈕綁定事件
//過濾出所有div中第一個元素
$("#btn1").click(function(){
$("div:first").css("background-color","palegreen");
});
//過濾出所有div中偶數位的div
$("#btn2").click(function(){
$("div:even").css("background-color","palegreen");
});
$("#btn3").click(function(){
$("div:odd").css("background-color","palegreen");
});
$("#btn4").click(function(){
$("div:gt(2)").css("background-color","palegreen");
});
});
</script>
(2).JQ 中的屬性過濾選擇器
通過元素的屬性來選取相應的元素。
a) “[attribute]”,選取擁有此屬性的元素。
b) “[attribute=value]”,選取指定屬性值爲value的所有元素。
c) “[attribute !=value]”,選取屬性值不爲value的所有元素。
d) “[attribute ^= value]”,選取屬性值以value開始的所有元素。
e) “[attribute $= value]”,選取屬性值以value結束的所有元素。
f) “[attribute *= value]”,選取屬性值包含value的所有元素。
g) “[selector1] [selector2]…[selectorN]”,複合性選擇器,首先經[selector1]選擇返回集合A,集合A再經過[selector2]選擇返回集合B,集合B再經過[selectorN]選擇返回結果集合。
// 選擇器[href] : 單個屬性
$(function(){
//找到有name屬性的input
$("#btn1").click(function(){
$("input[name]").attr("checked",true);
});
$("#btn2").click(function(){
$("input[name='accept']").attr("checked",true);
});
$("#btn3").click(function(){
$("input[name='newsletter'][value='Hot Fuzz']").attr("checked",true);
});
});
(3).JQ中的表單過濾器
a) “:input”,選取所有<input>、<textarea>、<select >和<button>元素。
b) “:text”,選取所有的文本框元素。
c) “:password”,選取所有的密碼框元素。
d) “:radio”,選取所有的單選框元素。
e) “:checkbox”,選取所有的多選框元素。
f) “:submit”,選取所有的提交按鈕元素。
g) “:image”,選取所有的圖像按鈕元素。
h) “:reset”,選取所有重置按鈕元素。
i) “:button”,選取所有按鈕元素。
j) “:file”,選取所有文件上傳域元素。
k) “:hidden”,選取所有不可見元素。
(4).選取 表單對象元素屬性的過濾選擇器。
“:enabled”,選取所有可用元素。
“:disabled”,選取所有不可用元素。
“:checked”,選取所有被選中的元素,如單選框、複選框。
“:selected”,選取所有被選中項元素,如下拉列表框、列表框。
option:selected
<script>
//1.文檔加載事件
$(function(){
$(":text").css("background-color","pink");
});
</script>
(5). 內容過濾選擇器
它是對元素和文本內容的操作。
a) “:contains(text)”,選取包含text文本內容的元素。
b) “:empty”,選取不包含子元素或者文本節點的空元素。
c) “:has(selector)”,選取含有選擇器所匹配的元素的元素。
d) “:parent”,選取含有子元素或文本節點的元素。(它是一個父節點)
(6). 可見性過濾選擇器
根據元素的可見與不可見狀態來選取元素。
“:hidden”,選取所有不可見元素。
“:visible”,選擇所有可見元素。
可見選擇器:hidden 不僅包含樣式屬性 display 爲 none 的元素,也包含文本隱藏域 (<input type=“hidden”>)和 visible:hidden 之類的元素。
(7).子元素過濾選擇器
一看名字便是,它是對某一元素的子元素進行選取的。
a) “:nth-child(index/even/odd)”,選取索引爲index的元素、索引爲偶數的元素、索引爲奇數的元素。
l nth-child(even/odd):能選取每個父元素下的索引值爲偶(奇)數的元素。
l nth-child(2):能選取每個父元素下的索引值爲 2 的元素。
l nth-child(3n):能選取每個父元素下的索引值是 3 的倍數的元素。
l nth-child(3n + 1):能選取每個父元素下的索引值是 3n + 1的元素。
b) “:first-child”,選取第一個子元素。
c) “:last-child”,選取最後一個子元素。
d) “:only-child”,選取唯一子元素,它的父元素只有它這一個子元素。
- 使用JQ完成表格的隔行換色
$(function(){
//獲得所有的行 : 元素選擇器
$("tbody > tr:even").css("background-color","#CCCCCC");
//修改基數行
$("tbody > tr:odd").css("background-color","#FFF38F");
// $("tbody > tr").css("background-color","#FFF38F");
});
- 使用JQuery完成表單的全選全不選功能
-
使用JQ完成省市聯動效果, 添加節點 : appendChild (JS)
- append : 添加子元素到末尾
- appendTo : 給自己找一個爹,將自己添加到別人家裏
- prepend : 在子元素前面添加
- after : 在自己的後面添加一個兄弟
$(function(){
$("#province").change(function(){
// alert(this.value);
//得到城市信息
var cities = provinces[this.value];
//清空城市select中的option
/*var $city = $("#city");
//將JQ對象轉成JS對象
var citySelect = $city.get(0)
citySelect.options.length = 0;*/
$("#city").empty(); //採用JQ的方式清空
//遍歷城市數據
$(cities).each(function(i,n){
$("#city").append("<option>"+n+"</option>");
});
});
});
- 使用JQ完成下拉列表左右選擇
<script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>
<script>
$(function(){
$("#a1").click(function(){
//找到被選中的那一項
//將被選中項添加到右邊
$("#rightSelect").append($("#leftSelect option:selected"));
});
//將左邊所有商品移動到右邊
$("#a2").click(function(){
$("#rightSelect").append($("#leftSelect option"));
});
});
</script>
- 總結:
常用函數:
屬性prop() properties : 如果傳入一個參數 就是獲取
prop("src","../img/1.jpg"); : 設置圖片路徑
attr : 操作一些自定義的屬性 <img abc='123' />
prop: 通常是用來操作元素固有屬性的 ,建議大家使用prop來操作屬性
css() ; 修改css樣式
addClass() : 添加一個 class 樣式
removeClass() : 移除
blur : 綁定失去焦點
focus: 綁定獲得焦點事件
click: 點擊
dblclick: 雙擊
change:更改
append : 給自己添加兒子
appendTo : 把自己添加到別人家
prepend : 在自己子節點最前面添加子節點
after : 在自己後面添加一個兄弟
before: 在自己前面添加一個兄弟
$("數組對象").each(function(index,data))
$.each(arr,function(index,data))
-
使用JQ完成表單的校驗
- trigger : 觸發事件,但是會執行類似瀏覽將光標移到輸入框內的這種瀏覽器默認行爲,輸入框獲得焦點
- triggerHandler : 僅僅只會觸發事件所對應的函數
- is()
1. 首先給必填項,添加尾部添加一個小紅點
2. 獲取用戶輸入的信息,做相應的校驗
3. 事件: 獲得焦點, 失去焦點, 按鍵擡起
4. 表單提交的事件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../css/style.css" />
<script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>
<script type="text/javascript">7
$(function(){ // 頁面初始化
//必填添加小紅點
$(".bitian").after("<font class='high'> *</font>");
// 必填綁定事件 $(".bitian").blur(function(){}).focus(function(){}).keyup(function(){}); 失去焦點。獲得焦點,
$(".bitian").blur(function(){
//用戶當前輸入的值
//var value = this.value; 兩種方式都可以得到當前值
var value = $(this).val();
//清空上一次的提示信息
$(this).parent().find(".formtips").remove();
//判斷當前的值是哪一項輸入的值
if($(this).is("#username")){
// 校驗用戶名:
if(value.length < 6){
$(this).parent().append("<span class='formtips onError'>用戶名太短了</span>");
}else{
$(this).parent().append("<span class='formtips onSuccess'>用戶正確</span>");
}
}
if($(this).is("#password")){
//校驗密碼
if(value.length < 3){
$(this).parent().append("<span class='formtips onError'>密碼太短了</span>");
}else{
$(this).parent().append("<span class='formtips onSuccess'>密碼可用</span>");
}
}
//鏈式調用,自動校驗
}).focus(function(){
$(this).triggerHandler("blur"); //觸發上面定義的 blur 函數
}).keyup(function(){
$(this).triggerHandler("blur");
});
//給表單綁定提交事件
$("form").submit(function(){
//提交的時候,觸發必填項的校驗邏輯
$(".bitian").trigger("focus");
//判斷錯誤信息是否包含0
var length = $(".onError").length ;
if(length > 0){
return false ;
}else
return true;
});
});
</script>
<title></title>
</head>
<body>
<form action="表單校驗.html" method="post">
<div>
用戶名:<input type="text" class="bitian" id="username"/>
</div>
<div>
密碼:<input type="password" class="bitian" id="password"/>
</div>
<div>
手機號:<input type="tel" />
</div>
<div>
<input type="submit" value="提交"/>
</div>
</form>
</body>
</html>
著作權所有,轉載請註明出處。