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)容請搜索腳本之家以前的文章或繼續(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-09jQuery實(shí)現(xiàn)簡單評(píng)論功能
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)簡單評(píng)論功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08jquery實(shí)現(xiàn)帶縮略圖的全屏圖片畫廊效果實(shí)例
這篇文章主要介紹了jquery實(shí)現(xiàn)帶縮略圖的全屏圖片畫廊效果,實(shí)例分析了jquery帶縮略圖的全屏效果圖片實(shí)現(xiàn)技巧,并附有完整的源碼下載,需要的朋友可以參考下2015-06-06jquery控制左右箭頭滾動(dòng)圖片列表的實(shí)例
jquery控制左右箭頭滾動(dòng)圖片列表的實(shí)例,需要的朋友可以參考一下2013-05-05jQuery is not defined 錯(cuò)誤原因與解決方法小結(jié)
今天在測試一個(gè)程序的時(shí)候,明顯已經(jīng)加載了jquery但總是提示jQuery is not defined,經(jīng)過多方測試終于發(fā)現(xiàn)了問題,這里簡單總結(jié)一下,需要的朋友可以參考下2017-03-03jQuery實(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