JQuery Child Filters

JQuery Child Filters are use to select children of selected parent element depending on selected criteria.

1) jQuery(":first-child")

Select All first elements which are children of selected parent element.

In example below 

$("div span").addClass("heads");

We applied class to each and every span under div.

To remove class from only first span under all div we will apply :first-child filter.

$("div span:first-child").removeClass("heads");

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; background-color: #808080 !important; font-size:12px!important; color:white!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                 </div>                 <div>                     <span>5</span>                     <span>6</span>                     <span>7</span>                     <span>8</span>                 </div>                 <div>                     <span>9</span>                     <span>10</span>                     <span>11</span>                     <span>12</span>                 </div>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("div span:first-child").removeClass("heads");         });     </script> </body> </html>

2) jQuery(":last-child")

Select All last elements which are children of selected parent element.

In example below 

$("div span").addClass("heads");

We apply class to each and every span under div.

To remove class from only last span under all div we will apply :last-child filter.

$("div span:last-child").removeClass("heads");

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; background-color: #808080 !important; font-size:12px!important; color:white!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                 </div>                 <div>                     <span>5</span>                     <span>6</span>                     <span>7</span>                     <span>8</span>                 </div>                 <div>                     <span>9</span>                     <span>10</span>                     <span>11</span>                     <span>12</span>                 </div>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("div span:last-child").removeClass("heads");         });     </script> </body> </html>

3) jQuery(":only-child")

Supose if parent have multiple children, which can be single, none or more than one

we want to select only those elements having count one i.e single child to parent. 

Following example will apply blue border to those span which are alone with in parent div.

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; background-color: #808080 !important; font-size:12px!important; color:white!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                 </div>                 <div>                     <span>5</span>                 </div>                 <div>                     <span>6</span>                     <span>7</span>                     <span>8</span>                     <span>9</span>                 </div>                 <div>                 </div>                 <div>                     <span>10</span>                 </div>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("div span:only-child").css("border", "2px blue solid");         });     </script> </body> </html>

4) jQuery(":nth-child(index/even/odd/equation)") filter

Selects all elements that are the nth-child of their parent.

index: Here index of each element will be starts with 1.

even: select elements having even index.

odd: select elements having odd index.

equation: xn+y 

Here x,y can be any numeric number.

n is same like index begins counting index from 0.

index: Following example will apply red border to first span under div.

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; font-size:12px!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                     <span>5</span>                     <span>6</span>                     <span>7</span>                     <span>8</span>                     <span>9</span>                     <span>10</span>                     <span>11</span>                     <span>12</span>                 </div>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("div span:nth-child(1)").css("border", "1px solid #f00");         });     </script> </body> </html>

even: following example apply red border to all event span.

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; font-size:12px!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                     <span>5</span>                     <span>6</span>                     <span>7</span>                     <span>8</span>                     <span>9</span>                     <span>10</span>                     <span>11</span>                     <span>12</span>                 </div>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("div span:nth-child(even)").css("border", "1px solid #f00");         });     </script> </body> </html>

odd: Following example will apply red border to all odd span.

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; font-size:12px!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                     <span>5</span>                     <span>6</span>                     <span>7</span>                     <span>8</span>                     <span>9</span>                     <span>10</span>                     <span>11</span>                     <span>12</span>                 </div>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("div span:nth-child(odd)").css("border", "1px solid #f00");         });     </script> </body> </html>

equation(2n): following example will apply red border to all even span having index as follow.

2 X 1 = 2

2 X 2 = 4

2 X 3 = 6

and so on..

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; font-size:12px!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                     <span>5</span>                     <span>6</span>                     <span>7</span>                     <span>8</span>                     <span>9</span>                     <span>10</span>                     <span>11</span>                     <span>12</span>                 </div>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("div span:nth-child(2n)").css("border", "1px solid #f00");         });     </script> </body> </html>

equation (2n+1):In example below, red border will be apply on following valued index i.e. all odd span elements.

2 X 0 + 1 = 1

2 X 1 + 1 = 3

2 X 2 + 1 = 5

2 X 3 + 1 = 7

and so on..

5) jQuery(":nth-last-child(index/even/odd/equation)")

This filter will work same like :nth-child only difference is that counter starts counting elements from last element to first element in reverse order.

index: Here index of each element will be starts with 1 from botom to top.

even: select elements having even index starts from last element.

odd: select elements having odd index starts from last element.

equation: xn+y 

Here x,y can be any numeric number.

n is same like index begins counting index from 0 count will begins from last element.

following example will select all even elements from last to first in each and every div. 

i.e. 1,3  5,7  10  12,14

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; font-size:12px!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                 </div>                 <div>                     <span>5</span>                     <span>6</span>                     <span>7</span>                     <span>8</span>                 </div>                 <p>                     <span>9</span>                     <span>10</span>                     <span>11</span>                 </p>                 <p>                     <span>12</span>                     <span>13</span>                     <span>14</span>                     <span>15</span>                 </p>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("div span:nth-last-child(even)").css("border", "1px solid #f00");         });     </script> </body> </html>

Type Child Filters : Selects elements by given element type.

6) jQuery(":first-of-type")

Selects all elements that are the first among siblings of the same element name.

Following example will apply red border on 1,6,9 and 13.

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; font-size:12px!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                 </div>                 <div>                     <b>5</b>                     <span>6</span>                     <span>7</span>                     <span>8</span>                 </div>                 <p>                     <span>9</span>                     <span>10</span>                     <span>11</span>                 </p>                 <p>                     <b>12</b>                     <span>13</span>                     <span>14</span>                     <span>15</span>                 </p>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("span:first-of-type").css("border", "1px solid #f00");         });     </script> </body> </html>

7) jQuery(":last-of-type")

Selects all elements that are the last among siblings of the same element name.

Following example will apply red border on 4,8,11 and 15.

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; font-size:12px!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                 </div>                 <div>                     <b>5</b>                     <span>6</span>                     <span>7</span>                     <span>8</span>                 </div>                 <p>                     <span>9</span>                     <span>10</span>                     <span>11</span>                 </p>                 <p>                     <b>12</b>                     <span>13</span>                     <span>14</span>                     <span>15</span>                 </p>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("span:last-of-type").css("border", "1px solid #f00");         });     </script> </body> </html>

8) jQuery(":nth-of-type(index/even/odd/equation)")

Selects all elements that are the nth child of their parent in relation to siblings with the same given element type (name).

index: Here index of each element will be starts with 1.

even: select elements having even index.

odd: select elements having odd index.

equation: xn+y 

Here x,y can be any numeric number.

n is same like index begins counting index from 0.

following example will select even index element of every div.

i.e. (2,4) (6,8) (10) (13,15)

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; font-size:12px!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                 </div>                 <div>                     <span>5</span>                     <span>6</span>                     <span>7</span>                     <span>8</span>                 </div>                 <p>                     <span>9</span>                     <span>10</span>                     <span>11</span>                 </p>                 <p>                     <span>12</span>                     <span>13</span>                     <span>14</span>                     <span>15</span>                 </p>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("span:nth-of-type(even)").css("border", "1px solid #f00");         });     </script> </body> </html>

odd: In given example replace even with odd.

$("span:nth-of-type(odd)").css("border", "1px solid #f00");

it will select odd index element of every div.

i.e. (1,3) (5,7) (9,11) (12,14)

2n:

In given example replace even with 2n.

$("span:nth-of-type(2n)").css("border", "1px solid #f00");

it will select 

(2,4) (6,8) (10) (13,15)

2n+1:

In given example replace even with 2n+1.

$("span:nth-of-type(2n)").css("border", "1px solid #f00");

it will select odd element from every div.

i.e. (1,3) (5,7) (9,11) (12,14) 

9) jQuery(":nth-last-of-type(index/even/odd/equation)")

Selects all the elements that are the nth-child of their parent in relation to siblings with the same element name, counting from the last element to the first.

index: Here index of each element will be starts with 1 from botom to top.

even: select elements having even index starts from last element.

odd: select elements having odd index starts from last element.

equation: xn+y 

Here x,y can be any numeric number.

n is same like index begins counting index from 0 count will begins from last element.

even: following example will select all event indexed element of same type from last to top.

i.e. (1,3) (5,7) (10) (12,14)

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; font-size:12px!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                 </div>                 <div>                     <span>5</span>                     <span>6</span>                     <span>7</span>                     <span>8</span>                 </div>                 <p>                     <span>9</span>                     <span>10</span>                     <span>11</span>                 </p>                 <p>                     <span>12</span>                     <span>13</span>                     <span>14</span>                     <span>15</span>                 </p>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("span:nth-last-of-type(even)").css("border", "1px solid #f00");         });     </script> </body> </html>

odd: Similarly in case of odd, replace even with odd in above given example.

$("span:nth-last-of-type(odd)").css("border", "1px solid #f00");

it will apply red border on (2,4) (6,8) (9,11) (13,15)

2n: Replace even with 2n in above given example.

$("span:nth-last-of-type(2n)").css("border", "1px solid #f00");

it will apply red border on (1,3) (5,7) (10) (12,14)

2n+1: Replace even with 2n in above given example.

$("span:nth-last-of-type(2n+1)").css("border", "1px solid #f00");

it will apply red border on 2,4) (6,8) (9,11) (13,15)

10) jQuery(":only-of-type") filter

Selects all elements that have no siblings with the same element name. It will select only alone siblings of parent with same element type (name).

In example bellow, we will apply border only for sigle sibling of given type 5,9,10.

<!DOCTYPE html> <html> <head>     <meta charset="utf-8" />     <title></title>     <link href="bootstrap-4.2.1/css/bootstrap.min.css" rel="stylesheet" />     <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>     <script src="bootstrap-4.2.1/js/bootstrap.bundle.min.js"></script>     <style>         .heads { display:inline-block; font-size:12px!important; min-width:100px; }     </style> </head> <body>     <div class="container" ng-app="myApp" ng-controller="MyController" ng-cloak>         <nav class="navbar navbar-expand-lg navbar-light bg-light">             <a class="navbar-brand" href="#">&nbsp;</a>         </nav>         <div class="row">             <div class="col-md-12">                 <div>                     <span>1</span>                     <span>2</span>                     <span>3</span>                     <span>4</span>                 </div>                 <div>                     <span>5</span>                 </div>                 <p>                     <span>6</span>                     <span>7</span>                     <span>8</span>                 </p>                 <p>                     <span>9</span>                 </p>                 <div>                     <b>10</b>                     <span>11</span>                 </div>                 <p>                     <span>12</span>                     <span>13</span>                     <span>14</span>                 </p>             </div>         </div>     </div>     <script>         $(function () {             $("div span").addClass("heads");             $("span:only-of-type").css("border", "1px solid #f00");         });     </script> </body> </html>

If you have any query or question or topic on which, we might have to write an article for your interest or any kind of suggestion regarding this post, Just feel free to write us, by hit add comment button below or contact via Contact Us form.


Your feedback and suggestions will be highly appreciated. Also try to leave comments from your valid verified email account, so that we can respond you quickly.

 
 

{{c.Content}}

Comment By: {{c.Author}}  On:   {{c.CreatedDate|date:'dd/MM/yyyy'}} / Reply


Categories