jQuery操作Dom元素與遍歷以及JS遍歷詳細(xì)講解
jQuery操作Dom元素
jQuery的主要用法為“選擇某個(gè)dom元素,再對(duì)其進(jìn)行某種操作”;jQuery一般簡(jiǎn)寫成“$”。使用CSS選擇器獲取元素
$(document) //選擇整個(gè)文檔對(duì)象
$('#myId') //選擇ID為myId的網(wǎng)頁(yè)元素
$('div.myClass') // 選擇class為myClass的div元素
$('input[name=first]') // 選擇name屬性等于first的input元素
使用jQuery特有的表達(dá)式獲取
$('a:first') //選擇網(wǎng)頁(yè)中第一個(gè)a元素
$('tr:odd') //選擇表格的奇數(shù)行
$('#myForm :input') // 選擇表單中的input元素
$('div:visible') //選擇可見的div元素
$('div:gt(2)') // 選擇所有的div元素,除了前三個(gè)
$('div:animated') // 選擇當(dāng)前處于動(dòng)畫狀態(tài)的div元素
jQuery的鏈?zhǔn)讲僮?,選中某個(gè)dom元素后進(jìn)行一系列操作
// 案例
$('div').find('h3').eq(2).html('Hello');
// 分解
$('div') //找到div元素
.find('h3') //選擇div元素中的h3元素
.eq(2) //選擇第3個(gè)h3元素
.html('Hello'); //將它的內(nèi)容改為Hello
// 之所以可以這樣操作,是因?yàn)槊恳徊降膉Query操作返回的都是一個(gè)對(duì)象
// jQuery還提供了.end()函數(shù),可以使結(jié)果后退一步
$('div')
.find('h3')
.eq(2)
.html('Hello')
.end() //退回到選中所有的h3元素的那一步
.eq(0) //選中第一個(gè)h3元素
.html('World'); //將它的內(nèi)容改為World jQuery創(chuàng)建Dom元素:只要把新元素直接傳入jQuery的構(gòu)造函數(shù)就行。(注意:jQuery構(gòu)造函數(shù)括號(hào)中的內(nèi)容使用單引號(hào),不要使用雙引號(hào),因?yàn)閱我?hào)可以直接進(jìn)行字符串拼接,否則無法區(qū)分class后面的雙引號(hào))
$('<p>Hello</p>'); // 注意使用單引號(hào)
$('<li class="new">new list item</li>');
$('ul').append('<li>list item</li>');
jQuery移動(dòng)元素有兩種方式
- 直接移動(dòng)該元素
- 移動(dòng)其它元素
// 選中一個(gè)div元素,將它移動(dòng)到p元素的后面
// 方式一
$('div').insertAfter($('p'));
// 方式二
$('p').after($('div'));
表面上看,這兩種方法的效果是一樣的,唯一的不同似乎只是操作視角的不同。但是實(shí)際上,它們有一個(gè)重大差別,那就是返回的元素不一樣。第一種方法返回div元素,第二種方法返回p元素。你可以根據(jù)需要,選擇到底使用哪一種方法。
7. jQuery插入元素
.insertAfter()和.after():在現(xiàn)存元素的外部,從后面插入元素 .insertBefore()和.before():在現(xiàn)存元素的外部,從前面插入元素 .appendTo()和.append():在現(xiàn)存元素的內(nèi)部,從后面插入元素 .prependTo()和.prepend():在現(xiàn)存元素的內(nèi)部,從前面插入元素
jQuery修改元素值,獲取元素值,給元素賦值(jQuery使用了同一個(gè)函數(shù),來完成取值(getter)和賦值(setter),即"取值器"與"賦值器"合一。到底是取值還是賦值,由函數(shù)的參數(shù)決定。賦值也可以對(duì)原來的屬性進(jìn)行修改。)
$('h1').html(); //html()沒有參數(shù),表示取出h1的值
$('h1').html('Hello'); //html()有參數(shù)Hello,表示對(duì)h1進(jìn)行賦值
// 常用函數(shù) .html() 取出或設(shè)置html內(nèi)容 .text() 取出或設(shè)置text內(nèi)容 .attr() 取出或設(shè)置某個(gè)屬性的值 // 這個(gè)常用在修改iframe元素的src屬性 .width() 取出或設(shè)置某個(gè)元素的寬度 .height() 取出或設(shè)置某個(gè)元素的高度 .val() 取出某個(gè)表單元素的值
jQuery遍歷幾種方式
選擇器遍歷兩種方式
// 方式一
$('div').each(function (i){
i就是索引值
this 表示獲取遍歷每一個(gè)dom對(duì)象
});
// 方式二
$('div').each(function (index,domEle){
index就是索引值
domEle 表示獲取遍歷每一個(gè)dom對(duì)象
});
另一種遍歷方式
// 先獲取某個(gè)集合對(duì)象
// 遍歷集合對(duì)象的每一個(gè)元素
var d=$("div");
$.each(d,function (index,domEle){
d是要遍歷的集合
index就是索引值
domEle 表示獲取遍歷每一個(gè)dom對(duì)
});
總結(jié):
- jQuery遍歷主要用來遍歷Dom元素,獲取Dom元素的值,傳遞到服務(wù)端。
- JavaScript的遍歷主要用來遍歷服務(wù)端返回的數(shù)據(jù),通過遍歷對(duì)象,結(jié)合jQuery給Dom元素賦值
- jQuery的作用是為了方便對(duì)Dom進(jìn)行操作
JavaScript遍歷
數(shù)組遍歷
// for --使用變量將數(shù)組長(zhǎng)度緩存起來,在數(shù)組較長(zhǎng)時(shí)性能優(yōu)化效果明顯
for(var i=0,len=arr.length;i<len;i++){
console.log("元素:"+arr[i]);
}
// forEach --ES5語法,對(duì)數(shù)組的每個(gè)元素執(zhí)行一次提供的函數(shù),不能使用break、return
arr.forEach(function(item,index,arr){
console.log("元素:"+item+" 索引:"+index+" 整個(gè)數(shù)組:"+arr);
})
// map --ES5語法,創(chuàng)建一個(gè)新數(shù)組,其結(jié)果是該數(shù)組中的每個(gè)元素都調(diào)用一個(gè)提供的函數(shù)后返回的結(jié)果
arr.map(function(val,index){
console.log("元素:"+val+" 索引:"+index);
return val*val;
})
// for...of --ES6語法,可以遍歷Array、Set、Map、String、TypedArray、arguments等可迭代對(duì)象,可以使用break、continue
for(let item of arr){
console.log("元素:"+item);
}
對(duì)象遍歷
// for...in --以任意順序遍歷一個(gè)對(duì)象自有的、繼承的、可枚舉的、非Symbol的屬性,對(duì)于每個(gè)不同的屬性,語句都會(huì)被執(zhí)行
for(var key in obj){
console.log("屬性:"+key+" 值:"+obj[key]);
}
// Object.keys() --返回一個(gè)由一個(gè)給定對(duì)象的自身可枚舉屬性組成的數(shù)組,數(shù)組中屬性名的排列順序和使用for...in循環(huán)遍歷該對(duì)象時(shí)返回的順序一致
Object.keys(obj);
// Object.values() --返回一個(gè)給定對(duì)象自身的所有可枚舉屬性值的數(shù)組,值的順序與使用for...in循環(huán)的順序相同(區(qū)別在于 for-in 循環(huán)枚舉原型鏈中的屬性)
Object.values(obj);
// Object.getOwnPropertyNames() --返回一個(gè)由指定對(duì)象的所有自身屬性的屬性名(包括不可枚舉屬性但不包括Symbol值作為名稱的屬性)組成的數(shù)組
Object.getOwnPropertyNames(obj);
字符串遍歷
// for...of --ES6語法,可以遍歷Array、Set、Map、String、TypedArray、arguments等可迭代對(duì)象,可以使用break、continue
for(let char of string){
console.log("字符:"+char);
}
到此這篇關(guān)于jQuery操作Dom元素與遍歷以及JS遍歷詳細(xì)講解的文章就介紹到這了,更多相關(guān)jQuery操作Dom元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- jQuery利用DOM遍歷實(shí)現(xiàn)商城結(jié)算系統(tǒng)實(shí)戰(zhàn)
- jQuery常見的遍歷DOM操作詳解
- jQuery DOM節(jié)點(diǎn)的遍歷方法小結(jié)
- 舉例講解jQuery對(duì)DOM元素的向上遍歷、向下遍歷和水平遍歷
- jQuery遍歷DOM的父級(jí)元素、子級(jí)元素和同級(jí)元素的方法總結(jié)
- jQuery遍歷DOM元素與節(jié)點(diǎn)方法詳解
- jQuery遍歷DOM節(jié)點(diǎn)操作之filter()方法詳解
- JQuery遍歷DOM節(jié)點(diǎn)的方法
- jQuery向上遍歷DOM樹之parents(),parent(),closest()之間的區(qū)別
相關(guān)文章
Bootstrap中點(diǎn)擊按鈕后變灰并顯示加載中實(shí)例代碼
Bootstrap插件非常的好用了,今天小編通過本教程給大家介紹Bootstrap中點(diǎn)擊按鈕后變灰并顯示加載中實(shí)例代碼,非常不錯(cuò),感興趣的朋友一起看看吧2016-09-09
jQuery實(shí)現(xiàn)簡(jiǎn)單評(píng)論功能
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)簡(jiǎn)單評(píng)論功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
jquery實(shí)現(xiàn)帶縮略圖的全屏圖片畫廊效果實(shí)例
這篇文章主要介紹了jquery實(shí)現(xiàn)帶縮略圖的全屏圖片畫廊效果,實(shí)例分析了jquery帶縮略圖的全屏效果圖片實(shí)現(xiàn)技巧,并附有完整的源碼下載,需要的朋友可以參考下2015-06-06
jquery控制左右箭頭滾動(dòng)圖片列表的實(shí)例
jquery控制左右箭頭滾動(dòng)圖片列表的實(shí)例,需要的朋友可以參考一下2013-05-05
jQuery is not defined 錯(cuò)誤原因與解決方法小結(jié)
今天在測(cè)試一個(gè)程序的時(shí)候,明顯已經(jīng)加載了jquery但總是提示jQuery is not defined,經(jīng)過多方測(cè)試終于發(fā)現(xiàn)了問題,這里簡(jiǎn)單總結(jié)一下,需要的朋友可以參考下2017-03-03
jQuery實(shí)現(xiàn)手機(jī)上輸入后隱藏鍵盤功能
最近做了這樣一個(gè)功能,讓用戶輸入手機(jī)發(fā)送驗(yàn)證碼,輸完11位手機(jī)號(hào)后,自動(dòng)隱藏鍵盤。下面通過本文給大家分享實(shí)現(xiàn)方法,一起看看吧2017-01-01
基于jQuery的計(jì)算文本框字?jǐn)?shù)的代碼
用戶邊輸入計(jì)算同時(shí)進(jìn)行,告訴用戶還剩余多少可輸入的字?jǐn)?shù),當(dāng)超過規(guī)定的字?jǐn)?shù)后,點(diǎn)擊確定,會(huì)讓輸入框閃動(dòng)2012-06-06

