Home > OS >  Reassigning text in HTML using js gives error
Reassigning text in HTML using js gives error

Time:01-19

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.

  •  Tags:  
  • Related