目錄
- 一、jQuery介紹
- jQuery引入
- 二、jQuery物件和DOM物件
- 三、jQuery選擇器
- 基本選擇器
- 層級選擇器
- 基本篩選器
- 屬性選擇器
- 表單篩選器
- 表單物件屬性篩選器
- 篩選器方法
- 四、標簽操作
- 樣式操作
- 文本操作
- 值操作
- 屬性操作
- 檔案操作
- 五、事件
- 事件系結方式
- 常用事件
- 事件冒泡
- 阻止事件冒泡
- 事件委托
- 六、補充
- 頁面載入
- 影片效果
- each 回圈
- .data( ) 方法
一、jQuery介紹
1、jQuery是一個輕量級的、兼容多瀏覽器的JavaScript庫,
2、jQuery使用戶能夠更方便地處理HTML Document、Events、實作影片效果、方便地進行Ajax互動,能夠極大地簡化JavaScript編程,它的宗旨就是:“Write less, do more.“
jQuery引入
首先需要jQuery官網下載jQuery的檔案,然后在HTML檔案中引入這個檔案,就可以使用這個檔案中幫我們提供的jquery的介面了,
<script src="https://www.cnblogs.com/XiaoYang-sir/p/jQuery.js"></script>
二、jQuery物件和DOM物件
jQuery 找到的標簽物件稱為 ——> jQuery物件
原生 JS 找到的標簽物件稱為 ——> DOM物件
DOM物件只能使用DOM物件的方法,不能使用jQuery物件的方法
jQuery物件也是,它不能使用DOM物件的方法
我們在宣告一個jQuery物件變數的時候在變數名前面加上$:
var $variable = jQuery對像;
var variable = DOM物件;
jQuery物件轉成DOM物件,通過一個jQuery物件+[0]索引零,就變成了DOM物件,就可以使用JS的代碼方法了,DOM物件轉換成jQuery物件:$(DOM物件),通過$符號包裹一下就可以了
$variable[0];
DOM 物件和 jQuery 物件互相轉換:
jQuery物件轉DOM物件 ——> jQuery物件[0] 示例:$('#d1')[0]
DOM物件轉jQuery物件 ——> $(dom物件)
三、jQuery選擇器
不管找什么標簽,用什么選擇器,都必須要寫$(""),引號里面再寫選擇器,通過jQuery找到的標簽物件就是一個jQuery物件,用原生JS找到的標簽物件叫做DOM物件
選擇器找到的可能是多個標簽,會放到陣列里面,但還是jquery物件,能夠直接使用jquery的方法,意思是找到的所有標簽進行統一設定,如果要單獨設定選中的所有標簽中的某個標簽,可以通過索引取值的方式找到,然后注意,通過索引取值拿到的標簽,是個dom物件
基本選擇器
和css一樣
id選擇器:
$("#id");
標簽選擇器:
$("tagName");
class選擇器:
$(".className");
配合使用:
$("div.c1"); // 找到有c1 class類的div標簽
所有元素選擇器:
$("*");
組合選擇器:
$("#id, .className, tagName");
層級選擇器
和css一樣
x 和 y 可以為任意選擇器
$("x y"); // x 的所有后代 y(子子孫孫)
$("x > y"); // x 的所有兒子 y(兒子)
$("x + y"); // 找到所有緊挨在 x 后面的 y
$("x ~ y"); // x 之后所有的兄弟 y
基本篩選器
選擇之后進行過濾篩選
方式一:
:first // 第一個
:last // 最后一個
:eq(index) // 索引等于index的那個元素
:even // 匹配所有索引值為偶數的元素,從 0 開始計數
:odd // 匹配所有索引值為奇數的元素,從 0 開始計數
:gt(index) // 匹配所有大于給定索引值的元素
:lt(index) // 匹配所有小于給定索引值的元素
:not(元素選擇器) // 移除所有滿足not條件的標簽
:has(元素選擇器) // 選取所有包含一個或多個標簽在其內的標簽(指的是從后代元素找)
// 找到所有后代中有h1標簽的div標簽,意思是首先找到所有div標簽,把這些div標簽的后代中有h1的div標簽篩選出來
$("div:has(h1)")
// 找到所有后代中有c1樣式類(類屬性class='c1')的div標簽
$("div:has(.c1)")
$("li:not(.c1)") // 找到所有不包含c1樣式類的li標簽
$("li:not(:has(a))") // 找到所有后代中不含a標簽的li標簽
例子:
<ul>
<li id="1">上海</li>
<li id="2">成都</li>
<li id="3">瀘州</li>
<li id="4">雅安</li>
<li id="5">北京</li>
</ul>
$('li:first'); // 查找所有li標簽中的第一個標簽
方式二:
和前面使用冒號的一樣 :first等,只不過冒號的那個是寫在選擇器里面的,而下面的這幾個是方法
.first() // 獲取匹配的第一個元素
.last() // 獲取匹配的最后一個元素
.not() // 從匹配元素的集合中洗掉與指定運算式匹配的元素
.has() // 保留包含特定后代的元素,去掉那些不含有指定后代的元素,
.eq() // 索引值等于指定值的元素
$('li').first(); // 查找所有li標簽中的第一個標簽
屬性選擇器
[attribute]
[attribute=value] // 屬性等于
[attribute!=value] // 屬性不等于
例子:多用于input標簽
<input type="text">
<input type="password">
<input type="checkbox">
$("input[type='checkbox']"); // 取到checkbox型別的input標簽
$("input[type!='text']"); // 取到型別不是text的input標簽
表單篩選器
多用于找form表單里面出現的input標簽
找到的是type屬性為這個值的input標簽中
:text
:password
:file
:radio
:checkbox
:submit
:reset
:button
例子:多用于input標簽
<input type="text">
<input type="password">
<input type="checkbox">
$(':password') // 找到input標簽中type屬性為password的標簽
表單物件屬性篩選器
:enabled // 可用的標簽
:disabled // 不可用的標簽
:checked // 選中的input標簽
:selected // 選中的option標簽
例子1:
<input type="text" disabled="disabled">
<input type="password">
$("input:enabled") // 找到可用的input標簽
例子2:
<select id="s1">
<option value="https://www.cnblogs.com/XiaoYang-sir/p/1">北京</option>
<option value="https://www.cnblogs.com/XiaoYang-sir/p/2">四川</option>
<option selected value="https://www.cnblogs.com/XiaoYang-sir/p/3">云南</option> // 默認選中
<option value="https://www.cnblogs.com/XiaoYang-sir/p/4">深圳</option>
</select>
$(":selected") // 找到所有被選中的option
篩選器方法
選擇器或者篩選器選擇出來的都是物件,而篩選器方法其實就是通過物件來呼叫一個進一步過濾作用的方法,寫在物件后面加括號,不再是寫在選擇器里面的了,
下一個:
$('#l3').next(); // 找到下一個兄弟標簽
$('#l3').nextAll(); // 找到下面所有的兄弟標簽
$('#l3').nextUntil('#l5'); // 往下直到找到id為l5的標簽,不包含它
上一個:
$("#id").prev() // 找到上一個兄弟標簽
$("#id").prevAll() // 找到上面所有的兄弟標簽
$("#id").prevUntil("#i2") // 往上直到找到id為i2的標簽,不包含它
父親元素:
$("#id").parent() // 查找當前元素的父親元素
$("#id").parents() // 查找當前元素的所有的父輩元素(爺爺輩、祖先輩都找到)
$("#id").parentsUntil('body')
// 查找當前元素的所有的父輩元素,直到遇到匹配的那個元素為止,這里直到body標簽,不包含body標簽,基本選擇器都可以放到這里面使用,
兒子和兄弟元素:
$('ul').children(); // 找到當前標簽的所有兒子標簽
$('ul').children('#l3'); // 找到符合后面這個選擇器的兒子標簽
$('#l5').siblings(); // 找到兄弟們,不包含自己
$('#l5').siblings('#l3'); // 找到符合后面這個選擇器的兄弟標簽
查找:find
搜索所有與指定運算式匹配的元素,這個函式是找出正在處理的元素的后代元素的好方法,
$('ul').find('#l3'); --> 類似于 $('ul #l3')
過濾:filter
和find不同,find是找div標簽的子子孫孫中找到一個符合條件的標簽
// 從結果集中過濾出有c1樣式類的,從所有的div標簽中過濾出有class='c1'屬性的div
('li').filter('.l3');
四、標簽操作
樣式操作
樣式類操作:
addClass(); // 添加指定的CSS類名,
removeClass(); // 移除指定的CSS類名,
hasClass(); // 判斷樣式存不存在
toggleClass(); // 切換CSS類名,如果有就移除,如果沒有就添加,
例子:
$('div.c1').addClass('c2');
$('div.c1').removeClass('c2');
$('div.c1').hasClass('c2');
$('div.c1').toggleClass('c2');
CSS樣式:
// 原生js
標簽.style.backgroundColor = 'black';
// jQuery
$('.c1').css('background-color','red');
// 同時設定多個css樣式
$('.c1').css({'background-color':'yellow','width':'200px'})
位置操作:
.offset()方法允許我們檢索一個元素相對于檔案(document)的當前位置,
.position()的差別在于: .position()獲取相對于它最近的具有相對位置(position: relative 或 position: absolute)的父級元素的距離,如果找不到這樣的元素,則回傳相對于瀏覽器界面左上角的距離,
offset() // 獲取匹配元素在當前視窗的相對偏移或設定元素位置
position() // 獲取匹配元素相對父元素的偏移,不能設定位置
$(window).scrollTop(); // 滾輪向下移動的距離
$(window).scrollLeft(); // 滾輪向左移動的距離
// 查看位置
$('.c2').position(); // 查看相對于父級元素位置
$('.c2').offset(); // 查看距離視窗左上角的絕對位置
// 設定位置
$('.c2').offset({'top':'20','left':'40'});
尺寸操作:
// 與盒子模型相關
$('.c1').height(); // content 高度
$('.c1').width(); // content 寬度
$('.c1').innerHeight(); // content 高度 + padding高度
$('.c1').innerWidth(); // content 寬度 + padding寬度
$('.c1').outerHeight(); // content 高度 + padding高度 + border高度
$('.c1').outerWidth(); // content 寬度 + padding寬度 + border寬度
文本操作
HTML:
html() // 取得第一個匹配元素的html內容,包含標簽內容
html(val) // 修改所有匹配元素的html內容,識別標簽,能夠表現出標簽的效果
文本值:
text() // 取得所有匹配元素的內容,只有文本內容,沒有標簽
text(val) // 修改所有匹配元素的內容,不識別標簽,將標簽作為文本插入進去
例子:
$('.c1').text('<h3>hello Word</h3>');
$('.c1').html('<h3>hello Word</h3>');
值操作
val() // 取得第一個匹配元素的當前值
val(val) // 修改所有匹配元素的值
val([val1, val2]) // 修改多選的checkbox、多選select的值
實體一:獲取值
<input type="text" > ————>獲取值:$('.c1').val();
<input type="checkbox" value="https://www.cnblogs.com/XiaoYang-sir/p/1">
// 獲取被選中的值這樣是不行的:$(':checkbox:checked').val();
// 需要回圈取值
var d = $(':checkbox:checked');
for (var i=0;i<d.length;i++){
console.log(d.eq(i).val());
}
單選select ---> $('#city').val();
多選select ---> $('#author').val(); // ["2", "3"]
實體二:設定值
<input type="text" > ——>設定值:$('.c1').val('小楊');
<input type="checkbox" value="https://www.cnblogs.com/XiaoYang-sir/p/1"> ——>設定值:$(':checkbox').val([1,3]);
// 如果直接:$(':checkbox').val(1);這樣的話會把所有的的value全部設定為1
單選select ---> $('#city').val('1'); // 或者——> option value='https://www.cnblogs.com/XiaoYang-sir/p/1'
多選select ---> $('#author').val(['2','3']);
屬性操作
用于ID自帶屬性等或自定義屬性:
attr(attrName) // 回傳第一個匹配元素的屬性值
attr(attrName, attrValue) // 為所有匹配元素設定一個屬性值
attr({k1: v1, k2:v2}) // 為所有匹配元素設定多個屬性值
removeAttr(attrName) // 從每一個匹配的元素中洗掉一個屬性
用于checkbox和radio
prop() // 獲取屬性
實體:
// 設定單個屬性
$('.c1').attr('id','d1');
// 設定多個屬性
$('.c1').attr({name:'xiao',id:'d1'});
// 查看屬性
$('.c1').attr('屬性名');
// 洗掉屬性
$('.c1').removeAttr('屬性名');
// prop ——> 針對的是checked\selected\disabled
// 查看標簽是否有checked屬性,也就是是否被選中
attr ————> $(':checked').attr('checked'); // 回傳:選中(checked),沒選中(undefined)
prop ————> $(':checked').prop('checked'); // 回傳:選中(true),沒選中(false)
// 通過設定屬性的方式來設定是否選中:
$(':radio').eq(2).prop('checked',true); // true和false不能加引號
$(':radio').eq(2).prop('checked',false);
prop和attr的區別:
attr全稱attribute(屬性)
prop全稱property(屬性)
雖然都是屬性,但他們所指的屬性并不相同,attr所指的屬性是HTML標簽屬性,而prop所指的是DOM物件屬性,可以認為attr是顯式的,而prop是隱式的,
簡單總結:
1、對于標簽上有的能看到的屬性和自定義屬性都用attr
2、對于回傳布林值的比如checkbox、radio和option的是否被選中或者設定其被選中與取消選中都用prop,
具有 true 和 false 兩個屬性的屬性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()
檔案操作
添加到指定元素--內部的后面
$(A).append(B) // 把B追加到A
$(A).appendTo(B) // 把A追加到B
實體:
// 添加字串照樣能識別標簽
$('#d1').append('<a href="http://www.jd.com">京東</a>');
添加到指定元素--內部的前面
$(A).prepend(B) // 把B前置到A
$(A).prependTo(B) // 把A前置到B
實體:
// 添加字串照樣能識別標簽
$('#d1').perpend('<a href="http://www.jd.com">京東</a>');
添加到指定元素--外部的后面
$(A).after(B) // 把B放到A的后面
$(A).insertAfter(B) // 把A放到B的后面
實體:
// 添加字串照樣能識別標簽
$('#d1').after('<a href="http://www.jd.com">京東</a>');
添加到指定元素--外部的前面
$(A).before(B) // 把B放到A的前面
$(A).insertBefore(B) // 把A放到B的前面
移除和清空元素
remove() // 從DOM中洗掉所有匹配的元素,
empty() // 洗掉匹配的元素集合中所有的子節點,包括文本被全部洗掉,但是匹配的元素還在
實體:
$('div').remove(); // 移除div標簽
$('div').empty(); // 清空div標簽中的所有內容
替換
replaceWith()
replaceAll()
實體:
var a = document.createElement('a')
a.href = 'http://www.baidu.com';
a.innerText = '百度';
// 寫法不一樣效果一樣
$('div').replaceWith(a); // 將所有的div標簽替換成a標簽
$(a).replaceAll('div'); // 將所有的div標簽替換成a標簽
克隆
clone() // 克隆
實體:
<button >按鈕</button>
<script>
$('.btn').click(function (){
// var a = $(this).clone(); // 克隆標簽
var a = $(this).clone(true); // 連帶事件一起克隆
$(this).after(a)
})
</script>
五、事件
事件系結方式
方式一:
<style>
.c1{
height: 100px;
width: 100px;
background: red;
}
</style>
<div ></div>
<script>
$('.c1').click(function () {
$(this).css({backgroundColor:'green'})
})
</script>
方式二:
<style>
.c1{
height: 100px;
width: 100px;
background: red;
}
</style>
<div ></div>
<script>
$('.c1').on('click', function () {
$(this).css({backgroundColor:'green'})
})
</script>
常用事件
click(function(){...}) // 左鍵點擊的事件
hover(function(){...}) // 滑鼠懸浮觸發的事件
blur(function(){...}) // 失去游標(焦點)觸發的事件
focus(function(){...}) // 獲取游標觸發的事件
change(function(){...}) // 內容發生變化,input,select等
keyup(function(){...}) // 鍵盤抬起觸發的事件
keydown(function(){...}) // 鍵盤按下觸發的事件
**左鍵點擊的事件:click **
$('.c1').click(function () {
$(this).css({backgroundColor:'green'})
})
獲取游標觸發的事件:focus —— 失去游標(焦點)觸發的事件:blur
<style>
.c1{
height: 100px;
width: 100px;
background: red;
}
</style>
<div ></div>
<input type="text">
<script>
$('[type="text"]').focus(function () { // 獲取游標事件
$('.c1').css({backgroundColor:'green'})
})
$('[type="text"]').blur(function () { // 失去游標事件
$('.c1').css({backgroundColor:'red'})
})
</script>
域內容發生改變時觸發的事件:change ——內容發生變化,input,select等
<select name="" id="d1">
<option value="https://www.cnblogs.com/XiaoYang-sir/p/1">成都</option>
<option value="https://www.cnblogs.com/XiaoYang-sir/p/2">北京</option>
<option value="https://www.cnblogs.com/XiaoYang-sir/p/3">上海</option>
</select>
<script>
$('#d1').change(function () {
console.log($(this).val())
})
</script>
input 實時監聽事件:只要input框里面的值發生變化就觸發某個事件,input事件不能直接系結,必須用on系結才行
<input type="text" id="d1">
<script>
$('#d1').on("input", function () {
console.log($(this).val())
})
</script>
滑鼠懸浮觸發的事件:hover
<style>
.c1{
height: 100px;
width: 100px;
background: red;
}
</style>
<div ></div>
<script>
$('.c1').hover(
// 第一步:滑鼠放上去
function () {$(this).css({backgroundColor: 'yellow'});},
// 第二步:滑鼠移走
function () {$(this).css({backgroundColor: 'red'});}
)
</script>
滑鼠懸浮觸發的事件:mouseenter、mouseout——等同于hover
mouseover 和 mouseenter 的區別是:mouseover事件是如果該標簽有子標簽,那么移動到該標簽或者移動到子標簽時會連續觸發,mmouseenter事件不管有沒有子標簽都只觸發一次,表示滑鼠進入這個物件
<style>
.c1{
height: 100px;
width: 100px;
background: red;
}
</style>
<div ></div>
<script>
// 第一步:滑鼠放上去
$('.c1').mouseenter(function () {
$(this).css({backgroundColor: 'yellow'})
})
// 第二部:滑鼠移走
$('.c1').mouseout(function () {
$(this).css({backgroundColor: 'red'})
})
</script>
鍵盤按下觸發的事件:keydown
$(window).keydown(function (e) {
console.log(e.keyCode); //每個鍵都有一個keyCode值,通過不同的值來觸發不同的事件
})
鍵盤抬起觸發的事件:keyup
$(window).keyup(function (e) {
console.log(e.keyCode);
})
移除事件:. off
.off( events [, selector ][,function(){}])
1.events: 事件
2.selector: 選擇器(可選的)
3.function: 事件處理函式
off() 方法移除用 .on()系結的事件處理程式,
$("li").off("click");就可以了
事件冒泡
冒泡的意思就是因為HTML可以嵌套,如果你給兒子標簽系結了事件或者沒有系結點擊事件,父級標簽系結了點擊事件,那么你一點擊子標簽,不管子標簽有沒有系結事件,都會觸發父級標簽的點擊事件,如果有,會先觸發子標簽的點擊事件,然后觸發父級標簽的點擊事件,不管子標簽有沒有點擊事件,都會一級一級的往上找點擊事件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#d1{
background-color: red;
height: 200px;
}
#d2{
background-color: green;
height: 100px;
width: 100px;
}
</style>
</head>
<body>
<div id="d1">
<div id="d2"></div>
</div>
<script src="https://www.cnblogs.com/XiaoYang-sir/p/jquery.js"></script>
<script>
$('#d1').click(function () {
alert('父級標簽');
});
$('#d2').click(function () {
alert('子級標簽');
});
</script>
</body>
</html>
阻止事件冒泡
就是為了阻止后續事件發生
1、return false;
$('#d1').click(function () {
alert('父級標簽');
});
$('#d2').click(function () {
alert('子級標簽');
return false
});
2、e.stopPropagation( );
用事件物件的這個方法就能阻止冒泡 (Propagation:傳遞的意思)
$('#d1').click(function () {
alert('父級標簽');
});
$('#d2').click(function (e) { // 這個引數e(只是個形參)表示當前事件本身,這個事件也是一個物件
alert('子級標簽');
e.stopPropagation();
});
事件委托
事件委托是通過事件冒泡的原理,利用父標簽去捕獲子標簽的事件,給未來將要添加進來的某些子標簽自動系結上事件,
例一:沒有事件委托,只有第一個按鈕可以觸發事件,其他新添加的按鈕雖然 class=c1 但是不能觸發事件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div >
<button >添加按鈕</button>
</div>
<script src="https://www.cnblogs.com/XiaoYang-sir/p/jQuery.js"></script>
<script>
$('.c1').click(function () {
var btn = document.createElement("button"); // 新建button標簽
btn.innerText = '添加按鈕';
btn.className = 'c1' // 給新標簽添加class=c1
$(this).after(btn); // 把新標簽放在自己的后面
})
</script>
</body>
</html>
列二:設定事件委托,每個新增按鈕都可以觸發事件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div >
<button >添加按鈕</button>
</div>
<script src="https://www.cnblogs.com/XiaoYang-sir/p/jQuery.js"></script>
<script>
// 將 'button.c1' 選擇器中的標簽的點擊事件委托給了 $('div.cc')
$('div.cc').on('click','button.c1',function () {
var btn = document.createElement("button");
btn.innerText = '添加按鈕';
btn.className = 'c1'
$(this).after(btn);
})
</script>
</body>
</html>
六、補充
頁面載入
JS 代碼寫到head標簽和寫道 body 標簽下面的作用是不同的,寫在 head 標簽里面的話,如果你寫了操作某個標簽的內容的話,那個標簽還沒加載出來,先加載了你的 JS 代碼,就找不到這個標簽,所以不會生效,所以寫在 body 標簽最下面是一種解決辦法,但還有另外兩種方法:
方法一 :等頁面上所有的元素都加載完,在執行這里面的 JS 代碼
缺點:如果你自己寫了兩個 JS 檔案,每個 JS 檔案中都有一個 window.onload 的話,那么后引入的檔案會把前面引入的檔案的 window.onload 里面的 JS 代碼全部覆寫掉,也會等到頁面上的檔案、圖片、視頻等所有資源都加載完才執行里面的 JS 代碼,加載比較慢
window.onload=function(){
// JS的代碼
}
方法二(推薦):不存在覆寫問題,而且只要檔案加載完就觸發,不需要等著一些圖片視頻什么的,加載 JS 效果的速度快,
// 寫法一:
$(document).ready(function(){
// JS的代碼
})
// 寫法二:簡寫
$(function(){
// JS代碼
})
$(document).ready 與 window.onload( ) 的區別
1、window.onload() 函式有覆寫現象,必須等待著圖片資源加載完成之后才能呼叫
2、$(document).ready 的這個入口函式沒有函式覆寫現象,檔案加載完成之后就可以呼叫(建議使用此函式)
影片效果
基本影片
show() --> $('.c1').show(5000) // 5秒之后顯示這個標簽,顯示程序有個影片
hide() --> $('.c1').hide(5000) // 5秒之后這個標簽消失,消失程序有個影片
滑動(拉窗簾一樣)
slideDown() --> $('.c1').slideDown(5000)
slideUp() --> $('.c1').slideUp(5000)
slideToggle() --> $('.c1').slideToggle(5000) // 前兩個互相切換
淡入淡出(控制透明度)
fadeIn() -->$('.c1').fadeIn(5000)
fadeOut() -->$('.c1').fadeOut(5000)
fadeTo() -->$('.c1').fadeTo(5000,0.2) // 0.2是最后顯示透明度
fadeToggle() -->$('.c1').fadeToggle(5000) // 前兩項互相切換
each 回圈
$.each (可迭代物件,function (k,v) { 迭代結果操作 } )
function 里面可以接受兩個引數,K 是索引,V 是每次回圈的具體元素,
實體一:獲取選中的值
<input type="checkbox" value="https://www.cnblogs.com/XiaoYang-sir/p/1">一
<input type="checkbox" value="https://www.cnblogs.com/XiaoYang-sir/p/2">二
<input type="checkbox" value="https://www.cnblogs.com/XiaoYang-sir/p/3">三
<input type="checkbox" value="https://www.cnblogs.com/XiaoYang-sir/p/4">四
<input type="checkbox" value="https://www.cnblogs.com/XiaoYang-sir/p/5">五
$.each($(':checkbox:checked'),function(k,v){
console.log(k,v.value);
})
// 輸出
0 "2"
1 "4"
2 "5"
實體二:
var li =[10,20,30,40]
$.each(li,function(k, v){
console.log(k, v);
})
// 輸出
0 10
1 20
2 30
3 40
.each ( function (k,v) { 迭代結果操作 } )
描述:遍歷一個jQuery物件,為每個匹配元素執行一個函式,
K 是索引,V 是每次回圈的具體元素,
// 由于回呼函式是在當前DOM元素為背景關系的語境中觸發的,所以關鍵字 this 總是指向這個元素,
// 為每一個li標簽加class
$("li").each(function(){
$(this).addClass("c1");
});
注意: jQuery的方法回傳一個jQuery物件,遍歷jQuery集合中的元素 -- 被稱為隱式迭代的程序,當這種情況發生時,它通常不需要顯式地回圈的 .each()方法:
也就是說,上面的例子沒有必要使用each()方法,直接像下面這樣寫就可以了:
$("li").addClass("c1"); // 對所有標簽做統一操作
終止 each 回圈
在遍歷程序中可以使用 return false提前結束each回圈,
而直接使用return后面什么都不加,不寫false,就是跳過本次回圈的意思,
JS 和 jQuery 中的 for 回圈也是通過他們兩個來跳出當此回圈或者終止回圈
實體一:return false
var a = [1,2,3,4,5,6,7,8]
$.each(a, function(k,v){
if (v > 3){ // 大于3就結束回圈
return false;
}else{
console.log(v);
}
});
// 輸出
1
2
3
實體二:return
var a = [1,2,3,4,5,6,7,8]
$.each(a, function(k,v){
if (v > 2 && v < 7){ // 在2-7之間的數字就跳過回圈
return false;
}else{
console.log(v);
}
});
// 輸出
1
2
7
8
.data( ) 方法
任意 jQuery 物件都有 data 方法,可以保存任意值,可以用來代替全域變數
.data(key, value):設定值
描述:在匹配的元素上存盤任意相關資料,
$("div").data("age",18); //給所有div標簽都保存一個名為age,值為18
.data(key):取值,沒有的話回傳undefined
描述: 回傳匹配的元素集合中的第一個元素的給定名稱的資料存盤的值
$("div").data("age"); //回傳第一個div標簽中保存的"age"的值
可以保存標簽
$('div.c1').data('a標簽',$('a.c2'));
$('.c1').data('a標簽').text(); -->百度
.removeData(key):洗掉
描述:移除存放在元素上的資料,不加key引數表示移除所有保存的資料,
$('.c1').removeData('a標簽'); // 移除元素上存放’a標簽‘對應的資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/285926.html
標籤:jQuery
上一篇:jQuery常見事件的監聽方式
下一篇:實踐指南-網頁生成PDF
