Difference between revisions of "DOM Changing elements"

From ProgZoo
Jump to navigation Jump to search
Line 49: Line 49:
<pre class='ans'>
<pre class='ans'>
document.querySelector('img').style.width = '50px';
document.querySelector('img').style.width = '50px';
</pre>
</div>
==Find many elements, change them all==
<div class='qu'>
You can use document.querySelectorAll to lots of elements.
*You can visit every element in the list with forEach
<div class=imper>Make the width of all img 50px</div>
<pre class='usr'>
document.querySelector('img').style.width = '75px';
</pre>
<pre class='ans'>
document.querySelectorAll('img').forEach(i=>{
  i.style.width = '50px';
});
</pre>
</pre>
</div>
</div>

Revision as of 17:50, 7 September 2021

 
 <div id='countries'> 
  <div id='fr'>
	<div>France</div>
	<img src='/flags/fr.gif'/>
  </div>
  <div id='fi'>
	<div>Finland</div>
	<img src='/flags/fi.gif'/>
  </div>
 </div>

In these examples the web page contains the following content.

<div id='countries'> 
 <div id='fr'>
   <div>France</div>
   <img src='/flags/fr.gif'/>
 </div>
 <div id='fi'>
   <div>Finland</div>
   <img src='/flags/fi.gif'/>
 </div>
</div>

Change an element based on id

If the element you want to change has an id you can use getElementById

  • The html above has a div with id "countries"
Change the countries div to have silver background color.
let e = document.getElementById('countries');
e.style.backgroundColor = 'pink';
let e = document.getElementById('countries');
e.style.backgroundColor = 'silver';

Find an element and change it

You can use document.querySelector to find elements. The pattern given is very like the patterns you use in CSS.

  • 'img' will match a <img/> element
  • '#fr' will match an element with id fr
Make the width of the first img 50px
document.querySelector('img').style.width = '75px';
document.querySelector('img').style.width = '50px';

Find many elements, change them all

You can use document.querySelectorAll to lots of elements.

  • You can visit every element in the list with forEach
Make the width of all img 50px
document.querySelector('img').style.width = '75px';
document.querySelectorAll('img').forEach(i=>{
  i.style.width = '50px';
});