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

335
Visualizações
JSDOM: eliminando las comillas en bloque una vez anidadas, pero deja 2 o más comillas en bloque anidadas

Estoy tratando de editar algo de HTML usando JSDOM dentro de Node.JS. Quiero que se elimine cualquier <blockquote> que sea hijo de, como máximo , un <div> circundante. Pero quiero que permanezca cualquier etiqueta <blockquote> que esté dentro de dos o más <div> s. He leído esta pregunta pero todavía estoy confundido. Puedes ver lo que he intentado en este JSFiddle . Aquí está el HTML original:

 <html> <div id="div1"> <blockquote>Text 1</blockquote> </div> <div id="div2"> <div id="div3"> <blockquote>Text 2</blockquote> <div id="div4"> <blockquote>Text 3</blockquote> </div> </div> </div> <span onclick="removeblockquotes(this)">Change</span> </html>

debería convertirse en

 <html> <div id="div1"> Text 1 </div> <div id="div2"> <div id="div3"> <blockquote>Text 2</blockquote> <div id="div4"> <blockquote>Text 3</blockquote> </div> </div> </div> </html>

Aquí está la función que he probado hasta ahora, pero no funciona (ninguna de las comillas está cambiando):

 function removeblockquotes(e) { var x = document.querySelectorAll("blockquote"); x.forEach(y=>{ if (y.parentNode.parentNode==null){ y.parentNode.appendChild(x.innerHTML); y.parentNode.removeChild(x); }; }); }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Simplemente .closest dos llamadas .closest en cada cita en bloque para ver si hay más de un div circundante:

 for (const b of document.querySelectorAll('blockquote')) { if (!b.closest('div')?.parentElement.closest('div')) { b.replaceWith(b.textContent); } } console.log(document.body.innerHTML);
 <div id="div1"> <blockquote>Text 1</blockquote> </div> <div id="div2"> <div id="div3"> <blockquote>Text 2</blockquote> <div id="div4"> <blockquote>Text 3</blockquote> </div> </div> </div>

(necesita un solo .parentElement porque .closest devolverá el elemento al que se llama si coincide)

over 4 years ago · Santiago Trujillo 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