Home » JQuery

JQuery DOM

In this article, we will see how to manipulate the DOM, updating, removing elements and traversing the DOM using the child-parent relationships in JQuery?
Submitted by Siddhant Verma, on November 18, 2019

Let's create a simple application that displays a list of your upcoming exams,

index.html:

<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <!-- Compiled and minified CSS -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">

    <!-- Compiled and minified JavaScript -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>

    <title>schedule</title>
    <style>
        body {
            background: linear-gradient(#ffe57f, #ffc400);
        }
        
        .card-image img {
            height: 200px;
            width: 200px;
        }
    </style>
</head>
<script>
    var id = 0;
</script>

<body>
    <div class="container">
        <h2 class="center title">Exam Schedule</h2>
        <div class="container">
            <ul class="collection center #ffff8d" id="subject-list">
                <h4 class="subject-name"><li class="collection-item ">English</li></h4>
                <h4 class="subject-name"><li class="collection-item ">Maths</li></h4>
                <h4 class="subject-name"><li class="collection-item ">Physics</li></h4>
                <h4 class="subject-name"><li class="collection-item ">Chemistry</li></h4>

            </ul>
        </div>

    </div>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="index.js"></script>
</body>

</html>

Output

JQuery DOM Example

Let's see how the DOM Tree would like for this application?

<h2>
    <div>
        <ul>
        <h4> <h4>	<h4>	<h4>
        <li> <li> <li> <li> 

<h2> is the sibling of the <div> which has a children <ul> which has 4 children, the <h4> each containing a child <li>. All these <h4> share a sibling relationship with each other. Let's see how to traverse the DOM using this DOM relationship?

    console.log($('h2')[0]);

Output

    <h2 class="center title">Exam Schedule</h2>

We can traverse from the title to our <ul> by calling the sibling method,

    console.log($('h2').siblings()[0]);

Output

    <div class="container">
        ...
    </div>

The siblings() method gets us all the siblings of that element which is a single <div> element.

    console.log($('h2').siblings().children()[0]);

Output

    <ul class="collection center #ffff8d" id="subject-list">
        ...
    </ul>

The children() method returns us all the children of that element. So now we're on the <ul> and we can further access the <h4> by calling the children method again.

    console.log($('h2').siblings().children().children()[0]);

Output

    <h4 class="subject-name"><li class="collection-item ">English</li></h4>

Notice how we only get the first child element because this method only taverses down the DOM one level. If we target the <ul> directly we can get all the children using the children() method,

    console.log($('#subject-list').children());

Output:

	k.fn.init(4) [h4.subject-name, h4.subject-name, h4.subject-name, h4.subject-name, prevObject: k.fn.init(1)]
	0: h4.subject-name
	1: h4.subject-name
	2: h4.subject-name
	3: h4.subject-name
	length: 4
	prevObject: k.fn.init [ul#subject-list.collection.center.#ffff8d]
	__proto__: Object(0)

Let's say you're done with the Maths paper and want to remove this item from the list.

    $('#subject-list').children()[1].remove();

Output

JQuery DOM Example

You can remove an element from the DOM using the remove() method.

    console.log($('#subject-list').parent());

Output

    k.fn.init [div.container, prevObject: k.fn.init(1)]

Thus we can traverse upwards the DOM using the parent() method.

    console.log($('#subject-list').children().first()[0]);
    console.log($('#subject-list').children().last()[0]);

Output

    <h4 class="subject-name"><li class="collection-item ">English</li></h4>
    <h4 class="subject-name"><li class="collection-item ">Chemistry</li></h4>

We can also use some filter methods like first() and last() to get the first and last elements of that collection.



Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.