2018-09-30 23:01:58 +01:00
---
id: bad87fee1348bd9aed108826
title: Target a Specific Child of an Element Using jQuery
challengeType: 6
2019-07-31 11:32:23 -07:00
forumTopicId: 18315
2020-11-27 19:02:05 +01:00
required:
- link: 'https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.2.0/animate.css'
2021-01-13 03:31:00 +01:00
dashedName: target-a-specific-child-of-an-element-using-jquery
2018-09-30 23:01:58 +01:00
---
2020-11-27 19:02:05 +01:00
# --description--
2018-09-30 23:01:58 +01:00
You've seen why id attributes are so convenient for targeting with jQuery selectors. But you won't always have such neat ids to work with.
2020-11-27 19:02:05 +01:00
2018-09-30 23:01:58 +01:00
Fortunately, jQuery has some other tricks for targeting the right elements.
2020-11-27 19:02:05 +01:00
jQuery uses CSS Selectors to target elements. The `target:nth-child(n)` CSS selector allows you to select all the nth elements with the target class or element type.
2018-09-30 23:01:58 +01:00
Here's how you would give the third element in each well the bounce class:
2020-11-27 19:02:05 +01:00
`$(".target:nth-child(3)").addClass("animated bounce");`
Make the second child in each of your well elements bounce. You must select the elements' children with the `target` class.
# --hints--
The second element in your `target` elements should bounce.
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
```js
assert(
$('.target:nth-child(2)').hasClass('animated') & &
$('.target:nth-child(2)').hasClass('bounce')
);
```
Only two elements should bounce.
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
```js
assert($('.animated.bounce').length === 2);
```
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
You should use the `:nth-child()` selector to modify these elements.
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
```js
assert(code.match(/\:nth-child\(/g));
2018-09-30 23:01:58 +01:00
```
2020-11-27 19:02:05 +01:00
You should only use jQuery to add these classes to the element.
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
```js
assert(
code.match(/\$\(".target:nth-child\(2\)"\)/g) ||
code.match(/\$\('.target:nth-child\(2\)'\)/g) ||
code.match(/\$\(".target"\).filter\(":nth-child\(2\)"\)/g) ||
code.match(/\$\('.target'\).filter\(':nth-child\(2\)'\)/g)
);
```
# --seed--
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
## --seed-contents--
2018-09-30 23:01:58 +01:00
```html
< script >
$(document).ready(function() {
$("#target1 ").css("color", "red");
$("#target1 ").prop("disabled", true);
$("#target4 ").remove();
$("#target2 ").appendTo("#right -well");
$("#target5 ").clone().appendTo("#left -well");
$("#target1 ").parent().css("background-color", "red");
$("#right -well").children().css("color", "orange");
});
< / script >
2020-09-15 09:53:25 -07:00
<!-- Only change code above this line -->
2018-09-30 23:01:58 +01:00
< div class = "container-fluid" >
< h3 class = "text-primary text-center" > jQuery Playground< / h3 >
< div class = "row" >
< div class = "col-xs-6" >
< h4 > #left -well</ h4 >
< div class = "well" id = "left-well" >
< button class = "btn btn-default target" id = "target1" > #target1 </ button >
< button class = "btn btn-default target" id = "target2" > #target2 </ button >
< button class = "btn btn-default target" id = "target3" > #target3 </ button >
< / div >
< / div >
< div class = "col-xs-6" >
< h4 > #right -well</ h4 >
< div class = "well" id = "right-well" >
< button class = "btn btn-default target" id = "target4" > #target4 </ button >
< button class = "btn btn-default target" id = "target5" > #target5 </ button >
< button class = "btn btn-default target" id = "target6" > #target6 </ button >
< / div >
< / div >
< / div >
< / div >
```
2020-11-27 19:02:05 +01:00
# --solutions--
2018-09-30 23:01:58 +01:00
2019-04-28 15:28:47 -04:00
```html
< script >
$(document).ready(function() {
$("#target1 ").css("color", "red");
$("#target1 ").prop("disabled", true);
$("#target4 ").remove();
$("#target2 ").appendTo("#right -well");
$("#target5 ").clone().appendTo("#left -well");
$("#target1 ").parent().css("background-color", "red");
$("#right -well").children().css("color", "orange");
$(".target:nth-child(2)").addClass("animated bounce");
});
< / script >
2020-09-15 09:53:25 -07:00
<!-- Only change code above this line -->
2019-04-28 15:28:47 -04:00
< div class = "container-fluid" >
< h3 class = "text-primary text-center" > jQuery Playground< / h3 >
< div class = "row" >
< div class = "col-xs-6" >
< h4 > #left -well</ h4 >
< div class = "well" id = "left-well" >
< button class = "btn btn-default target" id = "target1" > #target1 </ button >
< button class = "btn btn-default target" id = "target2" > #target2 </ button >
< button class = "btn btn-default target" id = "target3" > #target3 </ button >
< / div >
< / div >
< div class = "col-xs-6" >
< h4 > #right -well</ h4 >
< div class = "well" id = "right-well" >
< button class = "btn btn-default target" id = "target4" > #target4 </ button >
< button class = "btn btn-default target" id = "target5" > #target5 </ button >
< button class = "btn btn-default target" id = "target6" > #target6 </ button >
< / div >
< / div >
< / div >
< / div >
2018-09-30 23:01:58 +01:00
```