Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

213
Views
How to append an element to a div with className that have a child elemnt with idName

MY html has multiple divs that share the same class name and they have input elements with unique ids, I want to append a span under all of these inputs with JavaScript without editing the html.

this is the part of html

<form name="form" onsubmit="return validate();" method="get">
   <div class="form-group">
      <label for="pass">Password</label>
      <input type="password" class="form-control" name="pass" id="pass">
   </div>
   <div class="form-group">
      <label for="pass2">Re-Type Password</label>
      <input type="password" class="form-control" name="pass2" id="pass2">
   </div>
.
.
.
</form>

this my JS to create and append the span

const errorMessage = document.createElement('span');
errorMessage.textContent = "invalid input";
document.querySelector('.form-group').appendChild(errorMessage);

But this only creates one span in the first div

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

you should get all items has class form-group with querySelectorAll

const arrayElement = document.querySelectorAll('.form-group');

for(let i = 0; i < arrayElement.length; i++)
{
 const errorMessage = document.createElement('span');
 errorMessage.textContent = "invalid input";
 arrayElement[i].appendChild(errorMessage);
}

more : https://jsfiddle.net/7znf685q/2/

about 4 years ago · Juan Pablo Isaza Report

0

Use querySelectorAll() and iterate.

querySelectorAll(".form-group").forEach(form => {
    const errorMessage = document.createElement('span');
    errorMessage.textContent = "invalid input";
    form.appendChild(errorMessage);
});
about 4 years ago · Juan Pablo Isaza Report

0

querySelector just gets the first instance. You need to use querySelectorAll. Then put everything inside a loop

let group = document.querySelectorAll('.form-group') 
 
for (let i = 0; i < group.length; i++) {
  const errorMessage = document.createElement('span');
  errorMessage.textContent = "invalid input";
  group[i].appendChild(errorMessage);
}
<form name="form" onsubmit="return validate()" method="get">
  <div class="form-group">
    <label for="pass">Password</label>
    <input type="password" class="form-control" name="pass" id="pass">
  </div>
  <div class="form-group">
    <label for="pass2">Re-Type Password</label>
    <input type="password" class="form-control" name="pass2" id="pass2">
  </div>
</form>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!