Javascript Course


querySelector() and querySelectorAll() are two JavaScript functions very useful when working with HTML elements and JavaScript.
With these functions you can get in JavaScript the HTML elements according to a group of CSS selectors ('id', 'class').


querySelector()

querySelector() returns the first element within the document that matches the specified group of selectors, or null if no matches are found.
Syntax:
var elm = document.querySelector('selectors');
- 'selectors' is a string containing one or more CSS selectors separated by commas.
- elm is an element object.

Example, the code below displays the content of the first LI with class='aclass'.
<h4>Example querySelector()</h4>
<ul>
 <li>MarPlo.net</li>
 <li class='aclass'>CoursesWeb.net</li>
 <li class='aclass'>GamV.eu</li>
</ul>
<p style='background:#fbfbb0;'>If you click the following button (accessed with querySelector), it displays at #resp the content of the first LI with class='aclass'.</p>
<button id='btn1'>Click</button>
<blockquote id='resp'>#resp</blockquote>

<script>
var btn = document.querySelector('#btn1');
btn.addEventListener('click', (ev)=>{
 document.getElementById('resp').innerHTML = document.querySelector('li.aclass').innerHTML;
});
</script>

querySelectorAll()

querySelectorAll() returns an array of objects with the elements that match the specified group of selectors.
Syntax:
var elms = document.querySelectorAll('selectors');
- 'selectors' is a string containing one or more CSS selectors separated by commas.
- elms is an array with the selected HTML elements.

Example, gets an Array with the content of LI tags with class='sites', and the tags with class='note' within element with id='dv1', then it displays their content:
<h4>Example querySelectorAll()</h4>
<ul>
 <li class='sites'>CoursesWeb.net</li>
 <li class='sites'>MarPlo.net</li>
 <li>GamV.eu.net</li>
</ul>
<div id='dv1'>
 Web Development courses - <span class='note'>querySelector and querySelectorAll</span>
</div>
<p style='background:#fbfbb0;'>The JS script gets an array with the LI tags with class='sites' and the tag with class='note' from #dv1 (css selector: '<b>li.sites, #dv1 .note</b>' ).<br>
If you click the button, it displays their content at #resp.</p>
<button id='btn1'>Click</button>
<blockquote id='resp'>#resp</blockquote>

<script>
// gets all the LI tags with class='sites', and the tags with class='note' in element with id='dv1'
var elms = document.querySelectorAll('li.sites, #dv1 .note');
var btn = document.querySelector('#btn1');
btn.addEventListener('click', (ev)=>{
 var re ='';

//traverse the elms array, and adds in re the content of each element
 for(var i=0; i<elms.length; i++) {
 re += elms[i].innerHTML +'<br>';
 }

 //adds the string in #resp
 document.getElementById('resp').innerHTML = re;
});
</script>

The difference between querySelector() and querySelectorAll() is that querySelector() returns a single object with the first HTML element that matches the 'selectors', but querySelectorAll() returns an array of objects with all the HTML elements that match the 'selectors'.


• To limit the search to descendants of an element only, you can call the selectors API on the specific element of interest.
elementObject.querySelector('selectors')

elementObject.querySelectorAll('selectors')

- Here's another example with querySelectorAll(), the selection is made on other element, not on 'document'. When the mouse cursor is over a selected <a>, the URL address is added into a specified input field.
<p style='background:#fbfbb0;'>The JS script apply querySelectorAll() to gets the elements within the tag with id 'sites'.<br>
 - When the mouse is over the next links, the address from 'href' it is added in the text field.</p>
Adresa URL: <input type='text' id='txt1' />
<ul id='sites'>
 <li><a href='//coursesweb.net/javascript' title='JavaScript Course'>JavaScript Course</a></li>
 <li><a href='//gamv.eu/' title='Flash Games'>Flash Games</a></li>
</ul>

<script>
var txt1 = document.getElementById('txt1');

// gets A tags in LI added in element with id='idata'
var elms = document.getElementById('sites').querySelectorAll('li a');

//registers mouseenter to each element in elms array
for(var i=0; i<elms.length; i++){
 elms[i].addEventListener('mouseenter', (ev)=>{
 txt1.value = ev.target.href;
 });
}
</script>

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which attribute is used in <a> tag for the address of the link?
src href rel
<a href="http://coursesweb.net/" title="CoursesWeb.net">CoursesWeb.net</a>
Which CSS property sets the type of the text font?
font-family text-decoration font-size
h2 {
  font-family:"Calibri",sans-serif;
}
What instruction selects all the <div> tags with class="cls"?
querySelector("div.cls") getElementsByTagName("div") querySelectorAll("div.cls")
var elm_list = document.querySelectorAll("div.cls");
var nr_elms = elm_list.length;       // number of selected items
alert(nr_elms);
Indicate the function that can be used to get the sum of values in an array.
array_sum() array_diff() array_shift()
$arr =[1, 2, 3, 4);
$arr_sum = array_sum($arr);
echo $arr_sum;       // 10
querySelector and querySelectorAll

Last accessed pages

  1. Display data from PHP Array, or MySQL in HTML table (27013)
  2. JavaScript strip_tags and stripslashes (8845)
  3. Insert, Select and Update NULL value in MySQL (59218)
  4. addChild and removeChild (8022)
  5. Wake Up! (15323)

Popular pages this month

  1. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (702)
  2. CSS cursor property - Custom Cursors (89)
  3. PHP-MySQL free course, online tutorials PHP MySQL code (63)
  4. Read Excel file data in PHP - PhpExcelReader (63)
  5. The Mastery of Love (57)