03-jQuery
- 1、jQuery介紹
- 2、jQuery的初體驗
- 3、jQuery核心函數
- 4、jQuery 對象和 dom 對象區分
- 5、jQuery選擇器(重點)
-
- 基本選擇器
- 層級選擇器
- 過濾選擇器
-
- 基本過濾器
- 内容過濾器
- 屬性過濾器
- 表單過濾器
- 表單對象屬性過濾器
- 6、jQuery元素篩選
1、jQuery介紹
-
什麼是 jQuery ?
jQuery,顧名思義,也就是 JavaScript 和查詢(Query),它就是輔助 JavaScript 開發的 js 類庫。
-
jQuery 核心思想!!!
它的核心思想是 write less,do more(寫得更少,做得更多),是以它實作了很多浏覽器的相容問題。
-
jQuery 流行程度
jQuery 現在已經成為最流行的 JavaScript 庫,在世界前 10000 個通路最多的網站中,有超過 55%在使用 jQuery。
- jQuery 好處!!! jQuery 是免費、開源的,jQuery 的文法設計可以使開發更加便捷,例如操作文檔對象、選擇 DOM 元素、 制作動畫效果、事件處理、使用 Ajax 以及其他功能
2、jQuery的初體驗
需求:使用 jQuery 給一個按鈕綁定單擊事件?
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
// window.onload = function () {
// var btnObj = document.getElementById("btnId");
// // alert(btnObj);//[object HTMLButtonElement] ====>>> dom對象
// btnObj.onclick = function () {
// alert("js 原生的單擊事件");
// }
// }
$(function () { // 表示頁面加載完成 之後,相當 window.onload = function () {}
var $btnObj = $("#btnId"); // 表示按id查詢标簽對象
$btnObj.click(function () { // 綁定單擊事件
alert("jQuery 的單擊事件");
});
});
</script>
</head>
<body>
<button id="btnId">SayHello</button>
</body>
-
常見問題?
1、使用 jQuery 一定要引入 jQuery 庫嗎?
答案: 是,必須
2、jQuery 中的$到底是什麼?
答案: 它是一個函數
3、怎麼為按鈕添加點選響應函數的?
答案: ①使用 jQuery 查詢到标簽對象
②使用标簽對象.click( function(){} );
3、jQuery核心函數
$ 是 jQuery 的核心函數,能完成 jQuery 的很多功能。$()就是調用$這個函數
1、傳入參數為 [ 函數 ] 時:
表示頁面加載完成之後。相當于 window.onload = function(){}
2、傳入參數為 [ HTML 字元串 ] 時:
會對我們建立這個 html 标簽對象
3、傳入參數為 [ 選擇器字元串 ] 時:
$(“#id 屬性值”); id 選擇器,根據 id 查詢标簽對象
$(“标簽名”); 标簽名選擇器,根據指定的标簽名查詢标簽對象
$(“.class 屬性值”); 類型選擇器,可以根據 class 屬性查詢标簽對象
4、傳入參數為 [ DOM 對象 ] 時:
會把這個 dom 對象轉換為 jQuery 對象
4、jQuery 對象和 dom 對象區分
什麼是 jQuery 對象,什麼是 dom 對象
-
Dom 對象
1.通過 getElementById()查詢出來的标簽對象是 Dom 對象
2.通過 getElementsByName()查詢出來的标簽對象是 Dom 對象
3.通過 getElementsByTagName()查詢出來的标簽對象是 Dom 對象
4.通過 createElement() 方法建立的對象,是 Dom 對象
DOM 對象 Alert 出來的效果是:[object HTML 标簽名 Element]
-
jQuery 對象
1.通過 JQuery 提供的 API 建立的對象,是 JQuery 對象
2.通過 JQuery 包裝的 Dom 對象,也是 JQuery 對象
3.通過 JQuery 提供的 API 查詢到的對象,是 JQuery 對象 jQuery 對象 Alert 出來的效果是:[object Object]
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
//核心函數的4個作用
//傳入參數為[函數]時:在文檔加載完成後執行這個函數
$(function () {
// alert("頁面加載完成之後,自動調用");
//傳入參數為[HTML字元串]時:根據這個字元串建立元素節點對象
$(" <div>" +
" <span>div-span1</span>" +
" <span>div-span2</span>" +
" </div>").appendTo("body");
// alert($("button").length);
//傳入參數為[DOM對象]時:将DOM對象包裝為jQuery對象傳回
var btnObj = document.getElementById("btn01");
// alert(btnObj);
// alert( $(btnObj) );
// alert( $("<h1></h1>") );
//傳入參數為[選擇器字元串]時:根據這個字元串查找元素節點對象
alert($("button"));
});
</script>
</head>
<body>
<button id="btn01">按鈕1</button>
<button>按鈕2</button>
<button>按鈕3</button>
</body>
問題:jQuery 對象的本質是什麼?
jQuery 對象是 dom 對象的數組 + jQuery 提供的一系列功能函數。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
alert($);
});
</script>
</head>
<body>
<button id="btn">Button</button>
</body>
jQuery 對象和 Dom 對象使用差別
jQuery 對象不能使用 DOM 對象的屬性和方法
DOM 對象也不能使用 jQuery 對象的屬性和方法
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
//testDiv.css("color","red")
//testDiv.style.color = "blue";
// var arr = [12,"abc",true];
// var $btns = $("button");
//
// for (var i = 0; i < $btns.length; i++){
// alert($btns[i]);
// }
// document.getElementById("testDiv").innerHTML = "這是dom對象的屬性InnerHTML";
// $("#testDiv").innerHTML = "這是dom對象的屬性InnerHTML";
// $("#testDiv").click(function () {
// alert("click()是jQuery對象的方法");
// });
// document.getElementById("testDiv").click(function () {
// alert("click()是jQuery對象的方法");
// });
// alert( $(document.getElementById("testDiv"))[0] );
alert( $("button:first") );
});
</script>
</head>
<body>
<div id="testDiv">Atguigu is Very Good!</div>
<button id="dom2dom">使用DOM對象調用DOM方法</button>
<button id="dom2jQuery">使用DOM對象調用jQuery方法</button>
<button id="jQuery2jQuery">使用jQuery對象調用jQuery方法</button>
<button id="jQuery2dom">使用jQuery對象調用DOM方法</button>
</body>
Dom 對象和 jQuery 對象互轉
-
dom 對象轉化為 jQuery 對象(重點)
1、先有 DOM 對象
2、$( DOM 對象 ) 就可以轉換成為 jQuery 對象
-
jQuery 對象轉為 dom 對象(重點)
1、先有 jQuery 對象
2、jQuery 對象[下标]取出相應的 DOM 對象
5、jQuery選擇器(重點)
基本選擇器
#ID 選擇器:根據 id 查找标簽對象
.class 選擇器:根據 class 查找标簽對象
element 選擇器:根據标簽名查找标簽對象
* 選擇器:表示任意的,所有的元素
selector1,selector2 組合選擇器:合并選擇器 1,選擇器 2 的結果并傳回
p.myClass 表示标簽名必須是 p 标簽,而且 class 類型還要是 myClass
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<style type="text/css">
div, span, p {
width: 140px;
height: 140px;
margin: 5px;
background: #aaa;
border: #000 1px solid;
float: left;
font-size: 17px;
font-family: Verdana;
}
div.mini {
width: 55px;
height: 55px;
background-color: #aaa;
font-size: 12px;
}
div.hide {
display: none;
}
</style>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function () {
//1.選擇 id 為 one 的元素 "background-color","#bbffaa"
$("#btn1").click(function () {
// css() 方法 可以設定和擷取樣式
$("#one").css("background-color","#bbffaa");
});
//2.選擇 class 為 mini 的所有元素
$("#btn2").click(function () {
$(".mini").css("background-color","#bbffaa");
});
//3.選擇 元素名是 div 的所有元素
$("#btn3").click(function () {
$("div").css("background-color","#bbffaa");
});
//4.選擇所有的元素
$("#btn4").click(function () {
$("*").css("background-color","#bbffaa");
});
//5.選擇所有的 span 元素和id為two的元素
$("#btn5").click(function () {
$("span,#two").css("background-color","#bbffaa");
});
});
</script>
</head>
<body>
<!-- <div>
<h1>基本選擇器</h1>
</div> -->
<input type="button" value="選擇 id 為 one 的元素" id="btn1" />
<input type="button" value="選擇 class 為 mini 的所有元素" id="btn2" />
<input type="button" value="選擇 元素名是 div 的所有元素" id="btn3" />
<input type="button" value="選擇 所有的元素" id="btn4" />
<input type="button" value="選擇 所有的 span 元素和id為two的元素" id="btn5" />
<br>
<div class="one" id="one">
id 為 one,class 為 one 的div
<div class="mini">class為mini</div>
</div>
<div class="one" id="two" title="test">
id為two,class為one,title為test的div
<div class="mini" title="other">class為mini,title為other</div>
<div class="mini" title="test">class為mini,title為test</div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini"></div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini" title="tesst">class為mini,title為tesst</div>
</div>
<div style="display:none;" class="none">style的display為"none"的div</div>
<div class="hide">class為"hide"的div</div>
<div>
包含input的type為"hidden"的div<input type="hidden" size="8">
</div>
<span class="one" id="span">^^span元素^^</span>
</body>
</html>
層級選擇器
ancestor descendant 後代選擇器 :在給定的祖先元素下比對所有的後代元素
parent > child 子元素選擇器:在給定的父元素下比對所有的子元素
prev + next 相鄰元素選擇器:比對所有緊接在 prev 元素後的 next 元素
prev ~ sibings 之後的兄弟元素選擇器:比對 prev 元素之後的所有 siblings 元素
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<style type="text/css">
div, span, p {
width: 140px;
height: 140px;
margin: 5px;
background: #aaa;
border: #000 1px solid;
float: left;
font-size: 17px;
font-family: Verdana;
}
div.mini {
width: 55px;
height: 55px;
background-color: #aaa;
font-size: 12px;
}
div.hide {
display: none;
}
</style>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//1.選擇 body 内的所有 div 元素
$("#btn1").click(function(){
$("body div").css("background", "#bbffaa");
});
//2.在 body 内, 選擇div子元素
$("#btn2").click(function(){
$("body > div").css("background", "#bbffaa");
});
//3.選擇 id 為 one 的下一個 div 元素
$("#btn3").click(function(){
$("#one+div").css("background", "#bbffaa");
});
//4.選擇 id 為 two 的元素後面的所有 div 兄弟元素
$("#btn4").click(function(){
$("#two~div").css("background", "#bbffaa");
});
});
</script>
</head>
<body>
<!-- <div>
<h1>層級選擇器:根據元素的層級關系選擇元素</h1>
ancestor descendant :
parent > child :
prev + next :
prev ~ siblings :
</div> -->
<input type="button" value="選擇 body 内的所有 div 元素" id="btn1" />
<input type="button" value="在 body 内, 選擇div子元素" id="btn2" />
<input type="button" value="選擇 id 為 one 的下一個 div 元素" id="btn3" />
<input type="button" value="選擇 id 為 two 的元素後面的所有 div 兄弟元素" id="btn4" />
<br><br>
<div class="one" id="one">
id 為 one,class 為 one 的div
<div class="mini">class為mini</div>
</div>
<div class="one" id="two" title="test">
id為two,class為one,title為test的div
<div class="mini" title="other">class為mini,title為other</div>
<div class="mini" title="test">class為mini,title為test</div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini"></div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini" title="tesst">class為mini,title為tesst</div>
</div>
<div style="display:none;" class="none">style的display為"none"的div</div>
<div class="hide">class為"hide"的div</div>
<div>
包含input的type為"hidden"的div<input type="hidden" size="8">
</div>
<span id="span">^^span元素^^</span>
</body>
</html>
過濾選擇器
基本過濾器
:first 擷取第一個元素
:last 擷取最後個元素
:not(selector) 去除所有與給定選擇器比對的元素
:even 比對所有索引值為偶數的元素,從 0 開始計數
:odd 比對所有索引值為奇數的元素,從 0 開始計數
:eq(index) 比對一個給定索引值的元素
:gt(index) 比對所有大于給定索引值的元素
:lt(index) 比對所有小于給定索引值的元素
:header 比對如 h1, h2, h3 之類的标題元素
:animated 比對所有正在執行動畫效果的元素
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<style type="text/css">
div, span, p {
width: 140px;
height: 140px;
margin: 5px;
background: #aaa;
border: #000 1px solid;
float: left;
font-size: 17px;
font-family: Verdana;
}
div.mini {
width: 55px;
height: 55px;
background-color: #aaa;
font-size: 12px;
}
div.hide {
display: none;
}
</style>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
function anmateIt(){
$("#mover").slideToggle("slow", anmateIt);
}
anmateIt();
});
$(document).ready(function(){
//1.選擇第一個 div 元素
$("#btn1").click(function(){
$("div:first").css("background", "#bbffaa");
});
//2.選擇最後一個 div 元素
$("#btn2").click(function(){
$("div:last").css("background", "#bbffaa");
});
//3.選擇class不為 one 的所有 div 元素
$("#btn3").click(function(){
$("div:not(.one)").css("background", "#bbffaa");
});
//4.選擇索引值為偶數的 div 元素
$("#btn4").click(function(){
$("div:even").css("background", "#bbffaa");
});
//5.選擇索引值為奇數的 div 元素
$("#btn5").click(function(){
$("div:odd").css("background", "#bbffaa");
});
//6.選擇索引值為大于 3 的 div 元素
$("#btn6").click(function(){
$("div:gt(3)").css("background", "#bbffaa");
});
//7.選擇索引值為等于 3 的 div 元素
$("#btn7").click(function(){
$("div:eq(3)").css("background", "#bbffaa");
});
//8.選擇索引值為小于 3 的 div 元素
$("#btn8").click(function(){
$("div:lt(3)").css("background", "#bbffaa");
});
//9.選擇所有的标題元素
$("#btn9").click(function(){
$(":header").css("background", "#bbffaa");
});
//10.選擇目前正在執行動畫的所有元素
$("#btn10").click(function(){
$(":animated").css("background", "#bbffaa");
});
//11.選擇沒有執行動畫的最後一個div
$("#btn11").click(function(){
$("div:not(:animated):last").css("background", "#bbffaa");
});
});
</script>
</head>
<body>
<input type="button" value="選擇第一個 div 元素" id="btn1" />
<input type="button" value="選擇最後一個 div 元素" id="btn2" />
<input type="button" value="選擇class不為 one 的所有 div 元素" id="btn3" />
<input type="button" value="選擇索引值為偶數的 div 元素" id="btn4" />
<input type="button" value="選擇索引值為奇數的 div 元素" id="btn5" />
<input type="button" value="選擇索引值為大于 3 的 div 元素" id="btn6" />
<input type="button" value="選擇索引值為等于 3 的 div 元素" id="btn7" />
<input type="button" value="選擇索引值為小于 3 的 div 元素" id="btn8" />
<input type="button" value="選擇所有的标題元素" id="btn9" />
<input type="button" value="選擇目前正在執行動畫的所有元素" id="btn10" />
<input type="button" value="選擇沒有執行動畫的最後一個div" id="btn11" />
<h3>基本選擇器.</h3>
<br><br>
<div class="one" id="one">
id 為 one,class 為 one 的div
<div class="mini">class為mini</div>
</div>
<div class="one" id="two" title="test">
id為two,class為one,title為test的div
<div class="mini" title="other">class為mini,title為other</div>
<div class="mini" title="test">class為mini,title為test</div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini"></div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini" title="tesst">class為mini,title為tesst</div>
</div>
<div style="display:none;" class="none">style的display為"none"的div</div>
<div class="hide">class為"hide"的div</div>
<div>
包含input的type為"hidden"的div<input type="hidden" size="8">
</div>
<div id="mover">正在執行動畫的div元素.</div>
</body>
</html>
内容過濾器
:contains(text) 比對包含給定文本的元素
:empty 比對所有不包含子元素或者文本的空元素
:parent 比對含有子元素或者文本的元素
:has(selector) 比對含有選擇器所比對的元素的元素
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<style type="text/css">
div, span, p {
width: 140px;
height: 140px;
margin: 5px;
background: #aaa;
border: #000 1px solid;
float: left;
font-size: 17px;
font-family: Verdana;
}
div.mini {
width: 55px;
height: 55px;
background-color: #aaa;
font-size: 12px;
}
div.hide {
display: none;
}
</style>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
function anmateIt(){
$("#mover").slideToggle("slow", anmateIt);
}
anmateIt();
});
/**
:contains(text)
:empty
:has(selector)
:parent
*/
$(document).ready(function(){
//1.選擇 含有文本 'di' 的 div 元素
$("#btn1").click(function(){
$("div:contains('di')").css("background", "#bbffaa");
});
//2.選擇不包含子元素(或者文本元素) 的 div 空元素
$("#btn2").click(function(){
$("div:empty").css("background", "#bbffaa");
});
//3.選擇含有 class 為 mini 元素的 div 元素
$("#btn3").click(function(){
$("div:has(.mini)").css("background", "#bbffaa");
});
//4.選擇含有子元素(或者文本元素)的div元素
$("#btn4").click(function(){
$("div:parent").css("background", "#bbffaa");
});
});
</script>
</head>
<body>
<input type="button" value="選擇 含有文本 'di' 的 div 元素" id="btn1" />
<input type="button" value="選擇不包含子元素(或者文本元素) 的 div 空元素" id="btn2" />
<input type="button" value="選擇含有 class 為 mini 元素的 div 元素" id="btn3" />
<input type="button" value="選擇含有子元素(或者文本元素)的div元素" id="btn4" />
<br><br>
<div class="one" id="one">
id 為 one,class 為 one 的div
<div class="mini">class為mini</div>
</div>
<div class="one" id="two" title="test">
id為two,class為one,title為test的div
<div class="mini" title="other">class為mini,title為other</div>
<div class="mini" title="test">class為mini,title為test</div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini"></div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini" title="tesst">class為mini,title為tesst</div>
</div>
<div style="display:none;" class="none">style的display為"none"的div</div>
<div class="hide">class為"hide"的div</div>
<div>
包含input的type為"hidden"的div<input type="hidden" size="8">
</div>
<div id="mover">正在執行動畫的div元素.</div>
</body>
</html>
屬性過濾器
[attribute] 比對包含給定屬性的元素。
[attribute=value] 比對給定的屬性是某個特定值的元素
[attribute!=value] 比對所有不含有指定的屬性,或者屬性不等于特定值的元素。
[attribute^=value] 比對給定的屬性是以某些值開始的元素
[attribute$=value] 比對給定的屬性是以某些值結尾的元素
[attribute*=value] 比對給定的屬性是以包含某些值的元素
[attrSel1][attrSel2][attrSelN] 複合屬性選擇器,需要同時滿足多個條件時使用。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<style type="text/css">
div,span,p {
width: 140px;
height: 140px;
margin: 5px;
background: #aaa;
border: #000 1px solid;
float: left;
font-size: 17px;
font-family: Verdana;
}
div.mini {
width: 55px;
height: 55px;
background-color: #aaa;
font-size: 12px;
}
div.hide {
display: none;
}
</style>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
/**
[attribute]
[attribute=value]
[attribute!=value]
[attribute^=value]
[attribute$=value]
[attribute*=value]
[attrSel1][attrSel2][attrSelN]
*/
$(function() {
//1.選取含有 屬性title 的div元素
$("#btn1").click(function() {
$("div[title]").css("background", "#bbffaa");
});
//2.選取 屬性title值等于'test'的div元素
$("#btn2").click(function() {
$("div[title='test']").css("background", "#bbffaa");
});
//3.選取 屬性title值不等于'test'的div元素(*沒有屬性title的也将被選中)
$("#btn3").click(function() {
$("div[title!='test']").css("background", "#bbffaa");
});
//4.選取 屬性title值 以'te'開始 的div元素
$("#btn4").click(function() {
$("div[title^='te']").css("background", "#bbffaa");
});
//5.選取 屬性title值 以'est'結束 的div元素
$("#btn5").click(function() {
$("div[title$='est']").css("background", "#bbffaa");
});
//6.選取 屬性title值 含有'es'的div元素
$("#btn6").click(function() {
$("div[title*='es']").css("background", "#bbffaa");
});
//7.首先選取有屬性id的div元素,然後在結果中 選取屬性title值 含有'es'的 div 元素
$("#btn7").click(function() {
$("div[id][title*='es']").css("background", "#bbffaa");
});
//8.選取 含有 title 屬性值, 且title 屬性值不等于 test 的 div 元素
$("#btn8").click(function() {
$("div[title][title!='test']").css("background", "#bbffaa");
});
});
</script>
</head>
<body>
<input type="button" value="選取含有 屬性title 的div元素." id="btn1" style="display: none;"/>
<input type="button" value="選取 屬性title值等于'test'的div元素." id="btn2" />
<input type="button"
value="選取 屬性title值不等于'test'的div元素(沒有屬性title的也将被選中)." id="btn3" />
<input type="button" value="選取 屬性title值 以'te'開始 的div元素." id="btn4" />
<input type="button" value="選取 屬性title值 以'est'結束 的div元素." id="btn5" />
<input type="button" value="選取 屬性title值 含有'es'的div元素." id="btn6" />
<input type="button"
value="組合屬性選擇器,首先選取有屬性id的div元素,然後在結果中 選取屬性title值 含有'es'的 div 元素."
id="btn7" />
<input type="button"
value="選取 含有 title 屬性值, 且title 屬性值不等于 test 的 div 元素." id="btn8" />
<br>
<br>
<div class="one" id="one">
id 為 one,class 為 one 的div
<div class="mini">class為mini</div>
</div>
<div class="one" id="two" title="test">
id為two,class為one,title為test的div
<div class="mini" title="other">class為mini,title為other</div>
<div class="mini" title="test">class為mini,title為test</div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini"></div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini" title="tesst">class為mini,title為tesst</div>
</div>
<div style="display: none;" class="none">style的display為"none"的div</div>
<div class="hide">class為"hide"的div</div>
<div>
包含input的type為"hidden"的div<input type="hidden" value="123456789"
size="8">
</div>
<div id="mover">正在執行動畫的div元素.</div>
</body>
</html>
表單過濾器
:input 比對所有 input, textarea, select 和 button 元素
:text 比對所有 文本輸入框
:password 比對所有的密碼輸入框
:radio 比對所有的單選框
:checkbox 比對所有的複選框
:submit 比對所有送出按鈕
:image 比對所有 img 标簽
:reset 比對所有重置按鈕
:button 比對所有 input type=button <button>按鈕
:file 比對所有 input type=file 檔案上傳
:hidden 比對所有不可見元素 display:none 或 input type=hidden
表單對象屬性過濾器
:enabled 比對所有可用元素
:disabled 比對所有不可用元素
:checked 比對所有選中的單選,複選,和下拉清單中選中的 option 标簽對象
:selected 比對所有選中的 option
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
/**
:input
:text
:password
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden
表單對象的屬性
:enabled
:disabled
:checked
:selected
*/
//1.對表單内 可用input 指派操作
$("#btn1").click(function(){
// val()可以操作表單項的value屬性值
// 它可以設定和擷取
$(":text:enabled").val("我是萬能的程式員");
});
//2.對表單内 不可用input 指派操作
$("#btn2").click(function(){
$(":text:disabled").val("管你可用不可用,反正我是萬能的程式員");
});
//3.擷取多選框選中的個數 使用size()方法擷取選取到的元素集合的元素個數
$("#btn3").click(function(){
alert( $(":checkbox:checked").length );
});
//4.擷取多選框,每個選中的value值
$("#btn4").click(function(){
// 擷取全部選中的複選框标簽對象
var $checkboies = $(":checkbox:checked");
// 老式周遊
// for (var i = 0; i < $checkboies.length; i++){
// alert( $checkboies[i].value );
// }
// each方法是jQuery對象提供用來周遊元素的方法
// 在周遊的function函數中,有一個this對象,這個this對象,就是目前周遊到的dom對象
$checkboies.each(function () {
alert( this.value );
});
});
//5.擷取下拉框選中的内容
$("#btn5").click(function(){
// 擷取選中的option标簽對象
var $options = $("select option:selected");
// 周遊,擷取option标簽中的文本内容
$options.each(function () {
// 在each周遊的function函數中,有一個this對象。這個this對象是目前正在周遊到的dom對象
alert(this.innerHTML);
});
});
})
</script>
</head>
<body>
<h3>表單對象屬性過濾選擇器</h3>
<button id="btn1">對表單内 可用input 指派操作.</button>
<button id="btn2">對表單内 不可用input 指派操作.</button><br /><br />
<button id="btn3">擷取多選框選中的個數.</button>
<button id="btn4">擷取多選框選中的内容.</button><br /><br />
<button id="btn5">擷取下拉框選中的内容.</button><br /><br />
<form id="form1" action="#">
可用元素: <input name="add" value="可用文本框1"/><br>
不可用元素: <input name="email" disabled="disabled" value="不可用文本框"/><br>
可用元素: <input name="che" value="可用文本框2"/><br>
不可用元素: <input name="name" disabled="disabled" value="不可用文本框"/><br>
<br>
多選框: <br>
<input type="checkbox" name="newsletter" checked="checked" value="test1" />test1
<input type="checkbox" name="newsletter" value="test2" />test2
<input type="checkbox" name="newsletter" value="test3" />test3
<input type="checkbox" name="newsletter" checked="checked" value="test4" />test4
<input type="checkbox" name="newsletter" value="test5" />test5
<br><br>
下拉清單1: <br>
<select name="test" multiple="multiple" style="height: 100px" id="sele1">
<option>浙江</option>
<option selected="selected">遼甯</option>
<option>北京</option>
<option selected="selected">天津</option>
<option>廣州</option>
<option>湖北</option>
</select>
<br><br>
下拉清單2: <br>
<select name="test2">
<option>浙江</option>
<option>遼甯</option>
<option selected="selected">北京</option>
<option>天津</option>
<option>廣州</option>
<option>湖北</option>
</select>
</form>
</body>
</html>
6、jQuery元素篩選
eq() 擷取給定索引的元素 功能跟 :eq() 一樣
first() 擷取第一個元素 功能跟 :first 一樣
last() 擷取最後一個元素 功能跟 :last 一樣
filter(exp) 留下比對的元素
is(exp) 判斷是否比對給定的選擇器,隻要有一個比對就傳回,true
has(exp) 傳回包含有比對選擇器的元素的元素 功能跟 :has 一樣
not(exp) 删除比對選擇器的元素 功能跟 :not 一樣
children(exp) 傳回比對給定選擇器的子元素 功能跟 parent>child 一樣
find(exp) 傳回比對給定選擇器的後代元素 功能跟 ancestor descendant 一樣
next() 傳回目前元素的下一個兄弟元素 功能跟 prev + next 功能一樣
nextAll() 傳回目前元素後面所有的兄弟元素 功能跟 prev ~ siblings 功能一樣
nextUntil() 傳回目前元素到指定比對的元素為止的後面元素
parent() 傳回父元素
prev(exp) 傳回目前元素的上一個兄弟元素
prevAll() 傳回目前元素前面所有的兄弟元素
prevUnit(exp) 傳回目前元素到指定比對的元素為止的前面元素
siblings(exp) 傳回所有兄弟元素
add() 把add比對的選擇器的元素添加到目前 jquery 對象中
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DOM查詢</title>
<style type="text/css">
div, span, p {
width: 140px;
height: 140px;
margin: 5px;
background: #aaa;
border: #000 1px solid;
float: left;
font-size: 17px;
font-family: Verdana;
}
div.mini {
width: 55px;
height: 55px;
background-color: #aaa;
font-size: 12px;
}
div.hide {
display: none;
}
</style>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
function anmateIt(){
$("#mover").slideToggle("slow", anmateIt);
}
anmateIt();
/**
過濾
eq(index|-index)
first()
last()
hasClass(class)
filter(expr|obj|ele|fn)
is(expr|obj|ele|fn)1.6*
has(expr|ele)
not(expr|ele|fn)
slice(start,[end])
查找
children([expr])
closest(expr,[con]|obj|ele)1.6*
find(expr|obj|ele)
next([expr])
nextall([expr])
nextUntil([exp|ele][,fil])1.6*
parent([expr])
parents([expr])
parentsUntil([exp|ele][,fil])1.6*
prev([expr])
prevall([expr])
prevUntil([exp|ele][,fil])1.6*
siblings([expr])
串聯
add(expr|ele|html|obj[,con])
*/
//(1)eq() 選擇索引值為等于 3 的 div 元素
$("#btn1").click(function(){
$("div").eq(3).css("background-color","#bfa");
});
//(2)first()選擇第一個 div 元素
$("#btn2").click(function(){
//first() 選取第一個元素
$("div").first().css("background-color","#bfa");
});
//(3)last()選擇最後一個 div 元素
$("#btn3").click(function(){
//last() 選取最後一個元素
$("div").last().css("background-color","#bfa");
});
//(4)filter()在div中選擇索引為偶數的
$("#btn4").click(function(){
//filter() 過濾 傳入的是選擇器字元串
$("div").filter(":even").css("background-color","#bfa");
});
//(5)is()判斷#one是否為:empty或:parent
//is用來檢測jq對象是否符合指定的選擇器
$("#btn5").click(function(){
alert( $("#one").is(":empty") );
});
//(6)has()選擇div中包含.mini的
$("#btn6").click(function(){
//has(selector) 選擇器字元串 是否包含selector
$("div").has(".mini").css("background-color","#bfa");
});
//(7)not()選擇div中class不為one的
$("#btn7").click(function(){
//not(selector) 選擇不是selector的元素
$("div").not('.one').css("background-color","#bfa");
});
//(8)children()在body中選擇所有class為one的div子元素
$("#btn8").click(function(){
//children() 選出所有的子元素
$("body").children("div.one").css("background-color","#bfa");
});
//(9)find()在body中選擇所有class為mini的div元素
$("#btn9").click(function(){
//find() 選出所有的後代元素
$("body").find("div.mini").css("background-color","#bfa");
});
//(10)next() #one的下一個div
$("#btn10").click(function(){
//next() 選擇下一個兄弟元素
$("#one").next("div").css("background-color","#bfa");
});
//(11)nextAll() #one後面所有的span元素
$("#btn11").click(function(){
//nextAll() 選出後面所有的元素
$("#one").nextAll("span").css("background-color","#bfa");
});
//(12)nextUntil() #one和span之間的元素
$("#btn12").click(function(){
//
$("#one").nextUntil("span").css("background-color","#bfa")
});
//(13)parent() .mini的父元素
$("#btn13").click(function(){
$(".mini").parent().css("background-color","#bfa");
});
//(14)prev() #two的上一個div
$("#btn14").click(function(){
//prev()
$("#two").prev("div").css("background-color","#bfa")
});
//(15)prevAll() span前面所有的div
$("#btn15").click(function(){
//prevAll() 選出前面所有的元素
$("span").prevAll("div").css("background-color","#bfa")
});
//(16)prevUntil() span向前直到#one的元素
$("#btn16").click(function(){
//prevUntil(exp) 找到之前所有的兄弟元素直到找到exp停止
$("span").prevUntil("#one").css("background-color","#bfa")
});
//(17)siblings() #two的所有兄弟元素
$("#btn17").click(function(){
//siblings() 找到所有的兄弟元素,包括前面的和後面的
$("#two").siblings().css("background-color","#bfa")
});
//(18)add()選擇所有的 span 元素和id為two的元素
$("#btn18").click(function(){
// $("span,#two,.mini,#one")
$("span").add("#two").add("#one").css("background-color","#bfa");
});
});
</script>
</head>
<body>
<input type="button" value="eq()選擇索引值為等于 3 的 div 元素" id="btn1" />
<input type="button" value="first()選擇第一個 div 元素" id="btn2" />
<input type="button" value="last()選擇最後一個 div 元素" id="btn3" />
<input type="button" value="filter()在div中選擇索引為偶數的" id="btn4" />
<input type="button" value="is()判斷#one是否為:empty或:parent" id="btn5" />
<input type="button" value="has()選擇div中包含.mini的" id="btn6" />
<input type="button" value="not()選擇div中class不為one的" id="btn7" />
<input type="button" value="children()在body中選擇所有class為one的div子元素" id="btn8" />
<input type="button" value="find()在body中選擇所有class為mini的div後代元素" id="btn9" />
<input type="button" value="next()#one的下一個div" id="btn10" />
<input type="button" value="nextAll()#one後面所有的span元素" id="btn11" />
<input type="button" value="nextUntil()#one和span之間的元素" id="btn12" />
<input type="button" value="parent().mini的父元素" id="btn13" />
<input type="button" value="prev()#two的上一個div" id="btn14" />
<input type="button" value="prevAll()span前面所有的div" id="btn15" />
<input type="button" value="prevUntil()span向前直到#one的元素" id="btn16" />
<input type="button" value="siblings()#two的所有兄弟元素" id="btn17" />
<input type="button" value="add()選擇所有的 span 元素和id為two的元素" id="btn18" />
<h3>基本選擇器.</h3>
<br /><br />
文本框<input type="text" name="account" disabled="disabled" />
<br><br>
<div class="one" id="one">
id 為 one,class 為 one 的div
<div class="mini">class為mini</div>
</div>
<div class="one" id="two" title="test">
id為two,class為one,title為test的div
<div class="mini" title="other"><b>class為mini,title為other</b></div>
<div class="mini" title="test">class為mini,title為test</div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini"></div>
</div>
<div class="one">
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini">class為mini</div>
<div class="mini" title="tesst">class為mini,title為tesst</div>
</div>
<div style="display:none;" class="none">style的display為"none"的div</div>
<div class="hide">class為"hide"的div</div>
<span id="span1">^^span元素 111^^</span>
<div>
包含input的type為"hidden"的div<input type="hidden" size="8">
</div>
<span id="span2">^^span元素 222^^</span>
<div id="mover">正在執行動畫的div元素.</div>
</body>
</html>
以上就是關于jQuery的介紹,如果有不當之處或者遇到什麼問題,歡迎在文章下面留言~
如果你想了解更多關于JavaWeb的内容,可以檢視:JavaWeb學習目錄(超詳細)