Get all child nodes in EJ2 JavaScript TreeView control
28 Jan 20258 minutes to read
This section demonstrates how to retrieve child nodes from a corresponding parent ID within the TreeView control. By using the getNode
method, you can obtain the node details of the TreeView. Please refer to the following example.
/**
* TreeView get child nodes from parent id sample
*/
// Hierarchical data source for TreeView control
var data = [
{
code: "AF", name: "Africa", countries: [
{ code: "NGA", name: "Nigeria" },
{ code: "EGY", name: "Egypt" },
{ code: "ZAF", name: "South Africa" }
]
},
{
code: "AS", name: "Asia", countries: [
{ code: "CHN", name: "China" },
{
code: "IND", name: "India", countries: [
{ code: "TN", name: "TamilNadu" }
]
},
{ code: "JPN", name: "Japan" }
]
},
{
code: "EU", name: "Europe", countries: [
{ code: "DNK", name: "Denmark" },
{ code: "FIN", name: "Finland" },
{ code: "AUT", name: "Austria" }
]
},
{
code: "NA", name: "North America", countries: [
{ code: "USA", name: "United States of America" },
{ code: "CUB", name: "Cuba" },
{ code: "MEX", name: "Mexico" }
]
},
{
code: "SA", name: "South America", countries: [
{ code: "BR", name: "Brazil" },
{ code: "COL", name: "Colombia" },
{ code: "ARG", name: "Argentina" }
]
},
];
var tree1 = new ej.navigations.TreeView({
fields: { dataSource: data, id: 'code', text: 'name', child: 'countries' },
loadOnDemand: false,
created: onCreate
});
tree1.appendTo('#tree');
function onCreate() {
var proxy = this;
document.getElementById("btn").addEventListener("click", function () {
var id = document.getElementById('Nodes').value;
var element = proxy.element.querySelector('[data-uid="' + id + '"]');
// Gets the child Element
var liElements = element.querySelectorAll('ul li');
var arr = [];
for (var i = 0; i < liElements.length; i++) {
var nodeData = proxy.getNode(liElements[i]);
arr.push(nodeData);
}
alert(JSON.stringify(arr));
})
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 for TreeView </title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Essential JS 2 for TreeView UI Control">
<meta name="author" content="Syncfusion">
<link href="index.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/31.1.17/ej2-base/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/31.1.17/ej2-inputs/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/31.1.17/ej2-navigations/styles/material.css" rel="stylesheet">
<script src="https://cdn.syncfusion.com/ej2/31.1.17/dist/ej2.min.js" type="text/javascript"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
<div id="container">
<div id="treeparent">
<div id="tree"></div>
</div>
<br>
<input type="text" class="e-input" id="Nodes" style="margin-left: 300px; width: 175px;"
placeholder="Enter the parent ID( Ex: AS)">
<input type="button" class="btn btn-primary" value="Submit" id="btn">
<br>
</div>
<script>
var ele = document.getElementById('container');
if (ele) {
ele.style.visibility = "visible";
}
</script>
<script src="index.js" type="text/javascript"></script>
<style>
#treeparent {
display: block;
max-width: 350px;
max-height: 350px;
margin: auto;
overflow: auto;
border: 1px solid #dddddd;
border-radius: 3px;
}
</style>
</body>
</html>
#container {
visibility: hidden;
}
#loader {
color: #008cff;
height: 40px;
width: 30%;
position: absolute;
font-family: 'Helvetica Neue', 'calibiri';
font-size: 14px;
top: 45%;
left: 45%;
}