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

