Trying to reassign the text in mark tag but everytime i run it its only changing one tag and gives an error
let a = document.getElementsByTagName("mark").length;
for(i=0;i<=a;i++){
let b = document.getElementsByTagName("mark")[i];
let c = document.getElementsByTagName("mark")[i].innerText ="AWESOME";
}
Error Message
Uncaught TypeError: Cannot set properties of undefined (setting 'innerText')
at Change (index.js:8:64)
at index.js:20:1
All you need is to change your for loop:
for(i=0;i<=a;i++)to for(i=0;i<a;i++), because you are starting from 0.
let a = document.getElementsByTagName("mark").length;
for(i=0;i<a;i++){
let b = document.getElementsByTagName("mark")[i];
let c = document.getElementsByTagName("mark")[i].innerText ="AWESOME";
}
<mark></mark>
<mark></mark>
<mark></mark>
<mark></mark>
Just changed the condition of for loop from i<=a to i<a
Explaination:-
The error comes because after every tag is iterated, for loop runs again when it finds no tag and b = undefined and it gives the error
Thank you.