Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

224
Visualizações
javascript closest element by selector return null

I'm using the following script to get the ancestor of an element

<form id="form1">
  <div id="div1">
    <label id="label1">some label</label>
  </div>
  <div>
    <button id="btn1">
      Submit
    </button>
  </div>
</form>

this script works fine, as in it returns the form element

const btn = document.querySelector('#btn1');
console.log(btn);
const form = btn.closest('form');
console.log('form', form); // this returns the <form> element

but when I added some script to append an element using innerHTML, the form variable contains null.

const iconLoading = '<i class="fa-solid fa-spinner fa-spin"></i>';
const btn = document.querySelector('#btn1');
console.log(btn);
const parent = btn.parentElement;
parent.innerHTML += iconLoading;
const form = btn.closest('form');
console.log('form', form); // this returns null

here's the jsfiddle. what am I doing wrong? any help is appreciated

const iconLoading = '<i class="fa-solid fa-spinner fa-spin"></i>';
const btn = document.querySelector('#btn1');
console.log(btn);
const parent = btn.parentElement;
parent.innerHTML += iconLoading;
const form = btn.closest('form');
console.log('form', form);
<form id="form1">
  <div id="asd1">
    <label id="label1">some label</label>
  </div>
  <div>
    <button id="btn1">
      Submit
    </button>
  </div>
</form>

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda