Explicación:
- HTML: Define la estructura básica con un contenedor para los botones.
- CSS: Estiliza los botones dinámicos para que sean agradables visualmente.
- JavaScript: Contiene el array de funciones y el código para generar los botones dinámicos, asignando a cada botón un puntero que ejecuta la función correspondiente cuando se hace clic.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Funciones con Botones Dinámicos</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
.button-container {
margin-top: 20px;
}
.dynamic-button {
margin: 5px;
padding: 10px 20px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
}
.dynamic-button:hover {
background-color: #45a049;
}
</style>
</head>
<body>
<h1>Ejecutar Funciones Dinámicamente</h1>
<div class="button-container" id="button-container">
<!-- Aquí se agregarán los botones dinámicos -->
</div>
<script>
// Array de funciones
const funciones = [
() => alert("Función 1 ejecutada"),
() => alert("Función 2 ejecutada"),
() => alert("Función 3 ejecutada"),
() => alert("Función 4 ejecutada")
];
// Contenedor donde se agregarán los botones dinámicos
const buttonContainer = document.getElementById("button-container");
// Función para crear botones dinámicos y asociarlos a las funciones
const crearBotones = () => {
funciones.forEach((funcion, index) => {
const boton = document.createElement("button");
boton.textContent = `Ejecutar Función ${index + 1}`;
boton.className = "dynamic-button";
boton.onclick = funcion; // Asociar el puntero de la función al botón
buttonContainer.appendChild(boton);
});
};
// Crear los botones al cargar la página
crearBotones();
</script>
</body>
</html>
He agregado dos funciones al array: una para insertar datos estructurados de bloques de código SPA reutilizables y otra para reemplazar etiquetas HTML con atributos por otras etiquetas con atributos diferentes.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Funciones con Botones Dinámicos</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
.button-container {
margin-top: 20px;
}
.dynamic-button {
margin: 5px;
padding: 10px 20px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
}
.dynamic-button:hover {
background-color: #45a049;
}
pre {
background-color: #f4f4f4;
padding: 10px;
border-radius: 5px;
overflow-x: auto;
}
</style>
</head>
<body>
<h1>Ejecutar Funciones Dinámicamente</h1>
<div class="button-container" id="button-container">
<!-- Aquí se agregarán los botones dinámicos -->
</div>
<div id="output"></div>
<script>
// Array de funciones
const funciones = [
() => alert("Función 1 ejecutada"),
() => alert("Función 2 ejecutada"),
() => alert("Función 3 ejecutada"),
() => alert("Función 4 ejecutada"),
() => {
const output = document.getElementById('output');
const bloqueSPA = `
<div class="bloque-spa">
<h2>Bloque SPA Reutilizable</h2>
<p>Este es un ejemplo de un bloque reutilizable.</p>
</div>`;
output.innerHTML += bloqueSPA; // Insertar datos estructurados
alert("Bloque SPA insertado");
},
() => {
const originalElement = document.querySelector('h1');
const nuevoElemento = document.createElement('h2');
nuevoElemento.textContent = originalElement.textContent; // Copiar el contenido
nuevoElemento.style.color = 'blue'; // Agregar atributos personalizados
originalElement.replaceWith(nuevoElemento); // Reemplazar etiquetas
alert("Etiqueta HTML reemplazada");
}
];
// Contenedor donde se agregarán los botones dinámicos
const buttonContainer = document.getElementById("button-container");
// Función para crear botones dinámicos y asociarlos a las funciones
const crearBotones = () => {
funciones.forEach((funcion, index) => {
const boton = document.createElement("button");
boton.textContent = `Ejecutar Función ${index + 1}`;
boton.className = "dynamic-button";
boton.onclick = funcion; // Asociar el puntero de la función al botón
buttonContainer.appendChild(boton);
});
};
// Crear los botones al cargar la página
crearBotones();
</script>
</body>
</html>
Actualizaciones:
- Función para insertar bloques SPA reutilizables:
- Inserta datos estructurados en un contenedor identificado como
#output
. - Crea un bloque reutilizable con contenido HTML.
- Inserta datos estructurados en un contenedor identificado como
- Función para reemplazar etiquetas HTML:
- Busca un elemento HTML (por ejemplo,
<h1>
). - Lo reemplaza por otra etiqueta (por ejemplo,
<h2>
) con atributos personalizados.
- Busca un elemento HTML (por ejemplo,
Tags
JavaScript