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
CodePudding user response:
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.
CodePudding user response:
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.
