Issue #1077💬 RespondidoAbierto el 30 de abril de 2018por Deepak813Reacciones 2

Cómo podemos eliminar el componente seleccionado html

Respuesta rápidapor artf1

Puedes hacer algo así '''js componente const = editor.getSelected(); const coll = component.collection; const at = coll.indexOf(component); coll.remove(componente); return coll.add('<div>Contenido nuevo</div>', { at }); ```

Lee la respuesta completa abajo ↓

Pregunta

Hola artf,

Por favor, háganos saber cómo podemos eliminar el componente HTML seleccionado como Tengo un botón html y cuando selecciono esa clase "gjs-comp-selected" aparece añadida <button class="add_col_btn gjs-comp-selected" id="ir9j">Añadir nueva columna</button>

Quiero eliminar este botón html y reemplazarlo por contenido nuevo en un evento concreto. Por favor, ayúdanos a saber cómo podemos eliminar el componente seleccionado.

Respuestas (3)

artf4 de mayo de 2018

Puedes hacer algo así '''js componente const = editor.getSelected(); const coll = component.collection; const at = coll.indexOf(component); coll.remove(componente); return coll.add('<div>Contenido nuevo</div>', { at });

mararn161823 de septiembre de 2018

Esto me ha ayudado mucho a eliminar componentes programáticamente y solo quiero añadir un código de ejemplo en Typescript para más referencia.

Ejemplo de Typescript: Eliminar dinámicamente componentes

Se han retirado todos los componentes que...

  • .. tener un nombre de etiqueta = exampletag
  • .. tienen un atributo = exampleattr
  /**
   * Elimina todos los componentes del editor que tienen la etiqueta 'exampletag' y contienen el atributo 'exampleattr'.
   */
  clearComponentsFromEditor(): void {

sea allComponents = this.editor.getComponents();
    let componentsToBeRemoved = allComponents.filter(
      componentModel => (
        componentModel.attributes['tagName'] == 'exampletag' && null != componentModel.attributes.attributes['exampleattr'])
    );
    
for(let comp of componentsToBeRemoved) {
      if(null != comp & & null != comp.collection)
        comp.collection.remove(comp);
    }
  }
Deepak8134 de mayo de 2018

Hola artf,

Gracias por el mensaje y el código proporcionado funciona bien, pero me está saliendo el siguiente error:

Uncaught TypeError: No se puede leer la propiedad 'indexOf' de undefined en HTMLDivElement. <anonymous> (template.js?1.15:3784) at HTMLDivElement.dispatch (jquery.min.js:5) at HTMLDivElement.v.handle (jquery.min.js:5) en ZoneDelegate.webpackJsonp.../.. /.. /.. /zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) en Zone.webpackJsonp.../.. /.. /.. /zone.js/dist/zone.js.Zone.runTask (zone.js:188) en ZoneTask.webpackJsonp.../.. /.. /.. /zone.js/dist/zone.js.ZoneTask.invokeTask [como invoke] (zone.js:496) en invokeTask (zone.js:1517) en HTMLDivElement.globalZoneAwareCallback (zone.js:1543)

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.

Explora plugins gratuitos →
Opción premium

Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.

Explora plugins premium →

Tutoriales relacionados

Guías detalladas sobre el mismo tema.

Todos los tutoriales →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.