145 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			145 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								id: bad87fee1348bd9aed908626
							 | 
						|||
| 
								 | 
							
								title: Target the Same Element with Multiple jQuery Selectors
							 | 
						|||
| 
								 | 
							
								challengeType: 6
							 | 
						|||
| 
								 | 
							
								forumTopicId: 18322
							 | 
						|||
| 
								 | 
							
								required:
							 | 
						|||
| 
								 | 
							
								  - 
							 | 
						|||
| 
								 | 
							
								    link: 'https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.2.0/animate.css'
							 | 
						|||
| 
								 | 
							
								dashedName: target-the-same-element-with-multiple-jquery-selectors
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# --description--
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Now you know three ways of targeting elements: by type: `$("button")`, by class: `$(".btn")`, and by id `$("#target1")`.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Although it is possible to add multiple classes in a single `.addClass()` call, let's add them to the same element in *three separate ways*.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Using `.addClass()`, add only one class at a time to the same element, three different ways:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Add the `animated` class to all elements with type `button`.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Add the `shake` class to all the buttons with class `.btn`.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Add the `btn-primary` class to the button with id `#target1`.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**Note**  
							 | 
						|||
| 
								 | 
							
								You should only be targeting one element and adding only one class at a time. Altogether, your three individual selectors will end up adding the three classes `shake`, `animated`, and `btn-primary` to `#target1`.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# --hints--
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Your code should use the `$("button")` selector.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```js
							 | 
						|||
| 
								 | 
							
								assert(code.match(/\$\s*?\(\s*?(?:'|")\s*?button\s*?(?:'|")/gi));
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Your code should use the `$(".btn")` selector.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```js
							 | 
						|||
| 
								 | 
							
								assert(code.match(/\$\s*?\(\s*?(?:'|")\s*?\.btn\s*?(?:'|")/gi));
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Your code should use the `$("#target1")` selector.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```js
							 | 
						|||
| 
								 | 
							
								assert(code.match(/\$\s*?\(\s*?(?:'|")\s*?#target1\s*?(?:'|")/gi));
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								You should only add one class with each of your three selectors.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```js
							 | 
						|||
| 
								 | 
							
								assert(
							 | 
						|||
| 
								 | 
							
								  code.match(/addClass/g) &&
							 | 
						|||
| 
								 | 
							
								    code.match(/addClass\s*?\(\s*?('|")\s*?[\w-]+\s*?\1\s*?\)/g).length > 2
							 | 
						|||
| 
								 | 
							
								);
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Your `#target1` element should have the classes `animated`‚ `shake` and `btn-primary`.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```js
							 | 
						|||
| 
								 | 
							
								assert(
							 | 
						|||
| 
								 | 
							
								  $('#target1').hasClass('animated') &&
							 | 
						|||
| 
								 | 
							
								    $('#target1').hasClass('shake') &&
							 | 
						|||
| 
								 | 
							
								    $('#target1').hasClass('btn-primary')
							 | 
						|||
| 
								 | 
							
								);
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								You should only use jQuery to add these classes to the element.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```js
							 | 
						|||
| 
								 | 
							
								assert(!code.match(/class.*animated/g));
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# --seed--
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## --seed-contents--
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```html
							 | 
						|||
| 
								 | 
							
								<script>
							 | 
						|||
| 
								 | 
							
								  $(document).ready(function() {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  });
							 | 
						|||
| 
								 | 
							
								</script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<!-- Only change code above this line -->
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<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>
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# --solutions--
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```html
							 | 
						|||
| 
								 | 
							
								<script>
							 | 
						|||
| 
								 | 
							
								  $(document).ready(function() {
							 | 
						|||
| 
								 | 
							
								    $("button").addClass("animated");
							 | 
						|||
| 
								 | 
							
								    $(".btn").addClass("shake");
							 | 
						|||
| 
								 | 
							
								    $("#target1").addClass("btn-primary");
							 | 
						|||
| 
								 | 
							
								  });
							 | 
						|||
| 
								 | 
							
								</script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<!-- Only change code above this line -->
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<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>
							 | 
						|||
| 
								 | 
							
								```
							 |