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

177
Vistas
Crear menú desplegable de tipo <seleccionar> usando componentes web

El elemento html necesita elementos secundarios. La selección en sí no es realmente útil a menos que existan los elementos de opción. Quiero estar haciendo lo mismo.

Si creo un componente web y se ve así

 <my-select> <my-option> one </my-option> <my-option> two </my-option> <my-option> three </my-option> </my-select>

Mi objetivo en general aquí es que las etiquetas de opciones no deben colocarse en una ranura . Son necesarios para definir datos para representar la selección. Entonces, como mínimo, deberían moverse al DOM de la sombra. Pero eso parece algo incorrecto.

Otro ejemplo de este tipo de cosas sería y

  • . Si fuera un elemento personalizado, no querría poner el
  • en ranuras. es otro ejemplo.

    Ok, aquí hay un ejemplo concreto. Dado el marcado anterior, el componente web my-select en realidad creará un DOM de sombra y en su lugar representará un. Entonces, my-select necesita mirar todos los elementos dentro de él y crear un

  • para cada uno.

    Entonces, ¿cómo diablos hago eso? Debo estar perdiendo algo, ¿verdad?

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

    0

    <my-select> <my-option> one </my-option> <my-option> two </my-option> <my-option> three </my-option> </my-select>

    Si ha adjuntado un shadowDOM y desea mover este lightDOM a shadowDOM , puede usar:

     connectedCallback(){ setTimeout(()=>{ this.shadowRoot.append(...this.children); } }

    Se requiere setTimeout porque la devolución de llamada connectedCallback se activa en la etiqueta de apertura , el lightDOM en ese momento aún no se analiza.
    Debe esperar a que se analice todo lightDOM, setTimeout se asegura de ejecutar el código en la primera oportunidad (cuando el bucle de eventos está vacío).

    Para obtener detalles sobre el bucle de eventos, consulte: https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif

    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