舉例講解jQuery對(duì)DOM元素的向上遍歷、向下遍歷和水平遍歷
一、jQuery的向下遍歷
<script src="../JS/Extend.js"></script> <script src="../JS/my.js"></script> <link type="text/css" rel="stylesheet" href="../CSS3/my.css"> </head> <body> <div id="div1"> <div id="div2"> <p id="p1"> <a>hello world</a> </p> </div> </div> #div1{ width:500px; height:200px; border:3px solid coral; } #div2{ width:400px; height:150px; margin-top:10px; margin-left:10px; border: 3px solid coral; } #p1{ margin-left:10px; margin-top:10px; width:150px; height:80px; border:3px solid coral; }
1.children()方法的元素遍歷
$(document).ready( function (){ $("#div1").children().css({border:"3px solid black"}); });
可以看到此時(shí)div1的兒子div2的邊框顏色變成了黑色。
2.find()方法的元素遍歷
$(document).ready( function (){ $("#div1").find("a").css({border:"3px solid grey"}); });
可以看到此時(shí)div1的重孫子a元素出現(xiàn)了灰色邊框。、
.children()與.find()方法的區(qū)別是:children只能對(duì)元素的兒子元素進(jìn)行修改,而find則可以對(duì)其所有的子元素進(jìn)行修改。
二、jQuery的向上遍歷
顧名思義,向上遍歷就是從子集找到父集。
.parent() $(document).ready( function (){ $("#div2").parent().css({border:"3px solid black"}); });
div2的父元素div1邊框發(fā)生了改變
.parents() $(document).ready( function (){ $("a").parents().css({border:"3px solid grey"}); });
a元素除外,a元素的所有父級(jí)元素都發(fā)生了改變
.parentUntil() $(document).ready( function (){ $("a").parentsUntil("#div1").css({border:"3px solid grey"}) });
從a元素到div1元素之前的元素邊框發(fā)生了改變。
三個(gè)方法的區(qū)別是,.parent()只能向上遍歷一層;.parents()則可以指定父級(jí)元素的id進(jìn)行跨越遍歷;.parentUntil()則具有區(qū)間性質(zhì),將會(huì)遍歷包含于區(qū)間中的所有元素。
三、遍歷 - 同級(jí)(兄弟)
同級(jí)元素?fù)碛邢嗤母讣?jí)元素。
在 DOM 樹中水平遍歷。
有許多有用的方法讓我們?cè)?DOM 樹進(jìn)行水平遍歷:
- siblings()
- next()
- nextAll()
- nextUntil()
- prev()
- prevAll()
- prevUntil()
1.JQuery siblings()
siblings() 方法返回被選元素的所有同胞元素。
<section> <h1>文章的<span>標(biāo)題</span>啦</h1> <p>文章的內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容</p> <p>結(jié)尾部分</p> </section>
$(document).ready(function () { // 獲取h1標(biāo)簽的所有同級(jí)元素 var elem = $('h1').siblings(); console.log(elem); // p p });
2.JQuery next()
next() 方法返回被選元素的下一個(gè)同胞元素
<section> <h1>文章的<span>標(biāo)題</span>啦</h1> <p>文章的內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容</p> <p>結(jié)尾部分</p> </section>
$(document).ready(function () { // 獲取h1標(biāo)簽的下一個(gè)同級(jí)元素 var elem = $('h1').next(); console.log(elem); // p });
3.JQuery nextAll()
nextAll() 方法返回被選元素的所有跟隨的同胞元素。
<section> <h1>文章的<span>標(biāo)題</span>啦</h1> <p>文章的內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容</p> <p>結(jié)尾部分</p> </section>
$(document).ready(function () { // 獲取p標(biāo)簽的后面的所有同級(jí)元素 var elem = $('p').nextAll(); console.log(elem); // p });
4.JQuery nextUntil()
nextUntil() 方法返回介于兩個(gè)給定參數(shù)之間的所有跟隨的同胞元素。
<section> <h1>文章的<span>標(biāo)題</span>啦</h1> <p>文章的內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容</p> <p>結(jié)尾部分</p> <h2>重點(diǎn)注意</h2> </section>
$(document).ready(function () { // 獲取 var elem = $('h1').nextUntil('h2'); console.log(elem); // p p });
5.JQuery prev() & prevAll() & prevUntil()
prev(), prevAll() 以及 prevUntil() 方法的工作方式與上面的方法類似,只不過(guò)方向相反而已:它們返回的是前面的同級(jí)元素(在 DOM 樹中沿著同胞元素向后遍歷,而不是向前)。
- jQuery利用DOM遍歷實(shí)現(xiàn)商城結(jié)算系統(tǒng)實(shí)戰(zhàn)
- jQuery常見(jiàn)的遍歷DOM操作詳解
- jQuery DOM節(jié)點(diǎn)的遍歷方法小結(jié)
- 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ū)別
- jQuery操作Dom元素與遍歷以及JS遍歷詳細(xì)講解
相關(guān)文章
jQuery中[attribute!=value]選擇器用法實(shí)例
這篇文章主要介紹了jQuery中[attribute!=value]選擇器用法,實(shí)例分析了[attribute!=value]選擇器匹配不包含指定屬性元素的使用技巧,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12jquery keypress,keyup,onpropertychange鍵盤事件
項(xiàng)目所需,在試圖用js實(shí)現(xiàn)這樣的功能:文本框失去焦點(diǎn)時(shí),判斷輸入字符串的長(zhǎng)度,以驗(yàn)證是否超出范圍,超出范圍則自動(dòng)截取。2010-06-06解決checkbox的attr(checked)一直為undefined問(wèn)題
需要做個(gè)一個(gè)全選的checkbox功能,遇到checkbox的attr("checked")一直為undefined,下面與大家分享下最終的解決方案2014-06-06jquery中map函數(shù)遍歷數(shù)組用法實(shí)例
這篇文章主要介紹了jquery中map函數(shù)遍歷數(shù)組用法,實(shí)例分析了jQuery中map函數(shù)遍歷數(shù)組的相關(guān)技巧,并提供了一個(gè)自定義遍歷數(shù)組函數(shù)供參考之用,需要的朋友可以參考下2015-05-05基于EasyUI的基礎(chǔ)之上實(shí)現(xiàn)樹形功能菜單
這篇文章主要介紹了基于EasyUI的基礎(chǔ)之上實(shí)現(xiàn)樹形功能菜單,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06JQuery報(bào)錯(cuò)Uncaught TypeError: Illegal invocation的處理方法
這篇文章主要介紹了JQuery報(bào)錯(cuò)"Uncaught TypeError: Illegal invocation"的處理方法,需要的朋友可以參考下2015-03-03jQuery實(shí)現(xiàn)分章節(jié)錨點(diǎn)“回到頂部”動(dòng)畫特效代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)分章節(jié)錨點(diǎn)“回到頂部”動(dòng)畫特效代碼,涉及jQuery響應(yīng)鼠標(biāo)事件結(jié)合scroll實(shí)現(xiàn)頁(yè)面滾動(dòng)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10jQuery實(shí)現(xiàn)移動(dòng)端下拉展現(xiàn)新的內(nèi)容回彈動(dòng)畫
這篇文章主要介紹了jQuery實(shí)現(xiàn)移動(dòng)端下拉展現(xiàn)新的內(nèi)容回彈動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06