Un elemento personalizado en HTML
Una etiqueta tuya, con el comportamiento atado a la etiqueta y no a un selector.
<word-count for="editor">0 words</word-count>
<textarea id="editor" rows="4"></textarea>
<script>
class WordCount extends HTMLElement {
connectedCallback() {
const target = document.getElementById(this.getAttribute('for'));
target.addEventListener('input', () => {
const words = target.value.trim().split(/\s+/).filter(Boolean);
this.textContent = `${words.length} words`;
});
}
}
customElements.define('word-count', WordCount);
</script>
Cómo funciona
- El nombre de un elemento personalizado debe contener un guion.
connectedCallbackcorre cuando entra al documento.- Hasta que el script lo define, es un elemento en línea desconocido.
Palabras clave y builtins usados aquí
Booleanclassconstdocumentextendsthis
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 440
- Tokens
- 113
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 85 segundos.
Paso 2 de 3 en Plantillas y componentes; paso 6 de 13 en HTML interactivo.