jQuery 遍歷後代

在本教程中,你將學習如何使用 jQuery 遍歷 DOM 樹。

遍歷 DOM 樹

在邏輯關係中,後代是孩子、孫子、曾孫等等。

jQuery 提供有用的方法,比如 children()find() ,你可以用它來向下遍歷 DOM 樹單個或多個級別輕鬆地找到或得到孩子或層次結構中的一個元素的其他後裔。

jQuery children() 方法

jQuery children() 方法用於獲取所選元素的直接子元素。

以下示例將在文件就緒後通過新增 .highlight 類來突出顯示 <ul> 元素的直接子元素 <li>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery children() Demo</title>
<style type="text/css">
    .highlight{
        background: yellow;
    }        
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $("ul").children().addClass("highlight");
});
</script>
</head>
<body>
    
        <h1>Hello World</h1>
        <p>This is a <em>simple paragraph</em>.</p>
        <ul>
            <li>Item One</li>
            <li>Item Two</li>
        </ul>
    
</body>
</html>

jQuery find() 方法

jQuery find() 方法用於獲取所選元素的後代元素。

find()children() 方法是相似的,不同之處在於 find() ,通過多層次下來 DOM 樹到最後的後裔方法搜尋,而 children() 方法只搜尋單個水平下降 DOM 樹。以下示例將在作為 <div> 元素後代的所有 <li> 元素周圍新增邊框。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery find() Demo</title>
<style type="text/css">
    *{
        margin: 10px;
    }
    .frame{
        border: 2px solid green;
    }        
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $("div").find("li").addClass("frame");
});
</script>
</head>
<body>
    <div class="container">    
        <h1>Hello World</h1>
        <p>This is a <em>simple paragraph</em>.</p>
        <ul>
            <li>Item One</li>
            <li>Item Two</li>
        </ul>
    </div>    
</body>
</html>

但是,如果要獲取所有後代元素,可以使用通用選擇器。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery find() Demo</title>
<style type="text/css">
    *{
        margin: 10px;
    }
    .frame{
        border: 2px solid green;
    }        
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $("div").find("*").addClass("frame");
});
</script>
</head>
<body>
    
        <h1>Hello World</h1>
        <p>This is a <em>simple paragraph</em>.</p>
        <ul>
            <li>Item One</li>
            <li>Item Two</li>
        </ul>
    
</body>
</html>