Having trouble getting help?
Contact Support
Contact Support
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/29.1.33/ej2-base/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/29.1.33/ej2-inputs/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/29.1.33/ej2-navigations/styles/material.css" rel="stylesheet">
<script src="https://cdn.syncfusion.com/ej2/29.1.33/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%;
}