Having class = “selected” depending on what page / URL is. This concept is very important especially when designing a navbar for a website so that visitors on the website know on which page of the site they are on
Approach: To have class=” selected” depending on what the current page/URL is :
- Write your HTML code.
- Write the CSS for the selected class.
- In javascript, Find the current location of your page using location.href .
- Now save all the a tags in a variable lets say “Items” using document.querySelector function.
- Iterate over the Items and compare its location with the current page URL.
- If the Items location matches with the current location of the page the add the current a tag class to the selected class.
Syntax:
const currentLocation = location.href
Example: This code should be pasted in all the 4 files.
HTML
< html >
< head >
< style >
a {
color: #000;
text-decoration: none;
}
.nav {
padding: 10px;
border: solid 1px #c0c0c0;
border-radius: 5px;
float: left;
}
.nav li {
list-style-type: none;
float: left;
margin: 0 10px;
}
.nav li a {
text-align: center;
width: 55px;
float: left;
}
.nav li a.selected {
background-color: green;
color: #fff;
font-weight: bold;
}
</ style >
</ head >
< body >
< ul class = "nav" >
< li >< a href = "home.html" >Home</ a ></ li >
< li >|</ li >
< li >< a href = "gfg.html" >GFG</ a ></ li >
< li >|</ li >
< li >< a href = "about.html" >About</ a ></ li >
< li >|</ li >
< li >< a href = "contact.html" >Contact</ a ></ li >
</ ul >
</ body >
< script type = "text/javascript" >
const currentLocation = location.href;
const Items = document.querySelectorAll("a");
const Length = Items.length;
for (let i = 0; i < Items.length ; i++) {
if (Items[i].href === currentLocation) {
Items[i] .className = "selected" ;
}
}
</script>
</ html >
|
Output:
