jQuery操作Dom元素與遍歷以及JS遍歷詳細(xì)講解
jQuery操作Dom元素
jQuery的主要用法為“選擇某個(gè)dom元素,再對(duì)其進(jìn)行某種操作”;jQuery一般簡寫成“$”。使用CSS選擇器獲取元素
$(document) //選擇整個(gè)文檔對(duì)象
$('#myId') //選擇ID為myId的網(wǎng)頁元素
$('div.myClass') // 選擇class為myClass的div元素
$('input[name=first]') // 選擇name屬性等于first的input元素
使用jQuery特有的表達(dá)式獲取
$('a:first') //選擇網(wǎng)頁中第一個(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ù)組長度緩存起來,在數(shù)組較長時(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)文章
jQuery實(shí)現(xiàn)下拉框左右選擇的簡單實(shí)例
本篇文章主要是對(duì)jQuery實(shí)現(xiàn)下拉框左右選擇的簡單實(shí)例進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-02-02
jquery load事件(callback/data)使用方法及注意事項(xiàng)
jquery load 事件使用方法,在網(wǎng)上有很多的相關(guān)介紹文章,不過大同小異,本文老生長談,也介紹一下load事件使用方法,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)jquery有所幫助2013-02-02
jquery Form輕松實(shí)現(xiàn)文件上傳
這篇文章主要介紹了jquery Form輕松實(shí)現(xiàn)文件上傳的相關(guān)過程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
jQuery之a(chǎn)jax技術(shù)的詳細(xì)介紹
本篇文章是對(duì)jQuery中的ajax技術(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
Jquery給當(dāng)前頁或者跳轉(zhuǎn)后頁面的導(dǎo)航欄添加選中后樣式的實(shí)例
下面小編就為大家?guī)硪黄狫query給當(dāng)前頁或者跳轉(zhuǎn)后頁面的導(dǎo)航欄添加選中后樣式的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
jQuery JSON實(shí)現(xiàn)無刷新三級(jí)聯(lián)動(dòng)實(shí)例探討
無刷新三級(jí)聯(lián)動(dòng)的實(shí)現(xiàn)方法有很多,今天將與大家討論下jQuery JSON如何實(shí)現(xiàn),感興趣的朋友們可以參考下哈2013-05-05
eclipse導(dǎo)入jquery包后報(bào)錯(cuò)的解決方法
eclipse導(dǎo)入jquery包后報(bào)錯(cuò),下面有個(gè)不錯(cuò)的解決方法,需要的朋友可以參考下2014-02-02

