Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

207
Vistas
Insertar un elemento después de otro con .after() no funciona completamente

En una página web (desde un servidor remoto al que no tengo acceso) quiero insertar la URL de la página después de un determinado elemento y después de que se cargue la página web.

Mi solución se publica en el fragmento a continuación.

 var address = document.URL; var pane = document.getElementsByClassName("heading--large")[0]; pane.after("<a href=\"" + address + "\">" + address + "</a>");

Se inserta la URL de la página, pero solo como texto, no como un elemento reconocido.

La URL NO está activa como los otros enlaces. Echa un vistazo a la instantánea que subí.

Instantánea

¿Por qué el texto en mi elemento de anclaje no se muestra en azul? Además, el "href" no está resaltado en rojo como los otros elementos de anclaje que están debajo.

¿No es ".after ()" la función adecuada?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

En su código, está insertando una cadena después del nodo del pane como muestra la documentación de Element.after . Si desea usar after , modifique su código con document.createElement y modifique los elementos resultantes para reflejar su intención original

 var address = "https://www.ghacks.net/2021/10/02/which-are-the-best-screenshot-extensions-for-chrome/"; var pane = document.getElementsByClassName("heading--large")[0]; var myLink = document.createElement("a"); myLink.href = address; myLink.textContent = address; pane.after(myLink);
 <main class="post-list mt--60 mt--first--0"> <h1 class="heading--large" style="color:#43414e;font-weight:400;"> Which are the best screenshot extensions for Chrome? </h1> <div class="text-small ghacks-links ghacks-links--smallunderline mt--10 mb--20" style="font-size: 14px;opacity:0.9;margin-top:10px;margin-bottom:20px;"> by Shaun on October 02, 2021 in Google Chrome extensions - Last Update: September 30, 2021 - 6 comments </div> </main>

about 4 years ago · Juan Pablo Isaza Denunciar

0

.after() coloca nodos después de un elemento dado. Un nodo es muchas cosas, pero hay dos tipos de nodos que generalmente nos preocupan: elementos y texto. Sus requisitos son:

  1. Crear un <a>

  2. Agregue el atributo href con un valor predeterminado a <a> *

  3. Agregar contenido de texto predeterminado a <a> *

  4. Coloque <a> después de .heading--large *

    * #2, #3 y #4 pueden estar en cualquier orden

.after() solo puede hacer #4, así que aquí hay una posibilidad si realmente desea usar .after() :

  1. const A = document.createElement('a')
  2. A.href = address
  3. A.textContent = address
  4. pane.after(A)

 const address = document.URL; // This a modern equivalent const pane = document.querySelector(".heading--large"); /* This will safely render htmlString at a specfic location in relation to a given element. */ pane.insertAdjacentHTML("afterEnd", `<a href="${address}">${address}</a>`); // Check to see if it's correct with .outerHTML property console.log(document.querySelector("header").outerHTML);
 <header> <h1 class='heading--large'>Chrome Extensions</h1> </header>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda