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

139
Visualizações
Excluir sub DIV de DOM en Javascript

Tengo dos div. <div class="card" id="openWebsite"> y subdiv <div class="card__btn">

Si alguien hace clic en mi div raíz, será redirigido a example.com y cuando alguien haga clic en sub div, será redirigido a example.com y example.net , será redirigido a dos enlaces en dos pestañas nuevas.

Quiero, si alguien hace clic en root div, debería ser redirigido a example.com y cuando alguien haga clic en el botón sub div, solo debería ser redirigido a example.net , no a example.com

cómo excluir sub div <div class="card__btn"> de javascript.

Código:

 const webPage = document.querySelectorAll("#openWebsite"); webPage.forEach((e) => { e.addEventListener("click", () => { const site = e.getAttribute("data-site"); window.open(site, "_blank") || window.location.replace(site); }); });
 .card { background: blue; height: 100px; width: 500px; }
 <div class="card" id="openWebsite" data-site="https://example.com"> <div class="card__btn"> <a href="https://example.net"> Visit Site </a> </div> </div>

Ya probé desde jQuery excluir elementos con cierta clase en el selector , https://api.jquery.com/not/ , document.querySelector excluye parte de DOM , https://www.w3schools.com/jsref/met_document_queryselectorall.asp

 document.querySelectorAll("#openWebsite").not(".card__btn");

y

 document.querySelectorAll(".card").not(".card__btn");

y

 document.querySelectorAll("#openWebsite:not('.card__btn')");
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Debe hacer que su posición de div interna sea absoluta, luego funcionará de la manera que desee.

about 4 years ago · Juan Pablo Isaza Relatório

0

ahí tu código está absolutamente bien, solo que usaste

 querySelectorAll()

en vez de

 querySelector()

solo, porque solo tiene una identificación en su página con la identificación "openWebsite",

a continuación hay una sugerencia que creo que puede agregar a su css para que su proyecto sea más visible

 .card { background: blue; height: 100px; width: 500px; } .card__btn { background-color: red; padding: 10px; } a { color: white; }
about 4 years ago · Juan Pablo Isaza Relatório

0

Los eventos burbujean en el dom. Cuando haces clic en el ancla, se abre example.net . Luego sube por el árbol y se activa el controlador de eventos, lo que hace que se abra example.com .
Para detener esto, puede usar Event.stopPropagation . De esa forma, el evento no seguirá subiendo por el árbol.

Debido a que stackoverflow no permite que se abran nuevas pestañas, también he creado un violín .

 const webPage = document.querySelectorAll("#openWebsite"); webPage.forEach((e) => { e.addEventListener("click", () => { const site = e.getAttribute("data-site"); window.open(site, "_blank") || window.location.replace(site); }); }); document.querySelector(".card__btn").addEventListener("click", event => { event.stopPropagation(); });
 .card { background: blue; height: 100px; width: 500px; }
 <div class="card" id="openWebsite" data-site="https://example.com"> <div class="card__btn"> <a href="https://example.net"> Visit Site </a> </div> </div>

about 4 years ago · Juan Pablo Isaza Relatório
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