entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

cual es la causa del error en mi codigo js

el siguiente codigo se encargaria de agregar los items al array para posteriormente sumarlos y mostrar en la pagina el resultado

el primer obstaculo y causa de confusion es la cuestion de asociar un
elemento del dom a un numero por ej div producto = 10

el segundo es el problema de mostrar la longitud del array por la pagina por ej, si en mi array existen 10indices, estos 10 lo puedo llamar solo con la funcion consolelog si en cambio trato de mostrarlo en la pagina con innerHTML este no me muestra nada.

he pensado que la causa del problema podria ser porque este es un objeto y para mostrarlo necesito convertirlo en cadena

tercer problema mi boton no es reconocido como funcion

codigo html de mi boton encargado de agregar el elmento a mi array

<button id="prod1" onclick="sumar()">sumar producto</button>

codigo encargado de sumar todos los elementos del array y devolver el resultado

<button id="calcolo" onclick="calculo()">calculo</button>

var elementos = []; // array vacio disponibile a contener elementos
var elemento = getElementById('prod1'); // seleccion del elemento

var elemento = 50; // asociando el elemento a un numero entero

function sumar () {

elementos.push(elemento);

}

function calculo() {

  var indicador = getElementById('sumatotal');
  var suma = elementos.length;
  indicador.innerHTML=[suma];
  console.log(suma);

alert ("esto es una prueba");

getElementById('calcolo').addEventListener('onclick', function() {
  alert("esto es una prueba");
} );

}

1 Respuesta

1voto

magarzon Puntos30650

Tu primer problema no lo he entendido bien, si te refieres a cómo asociar un valor al botón, lo puedes hacer de mil maneras, dependiendo de cómo generes tu página, y puedes por ejemplo que ese valor se pase en la llamada a sumar():

<button id="prod1" onclick="sumar(50)">sumar producto</button>

O que esté como attributo de ese botón (o de otro elemento relacionado con ese botón):

<button data-value="50" id="prod1" onclick="sumar()">sumar producto</button>

Y de esta manera lo puedes recuperar con jQuery así en la función del onclick:

$value = $(this).data('value');

Para el segundo problema, no he probado tu código, pero creo que lo único que te pasa es que no sé por qué estás asignando al innerHTML un array [suma] en lugar de simplemente la suma:

indicador.innerHTML = suma;

Por otro lado, tal y como tienes tu código, sumaría número de elementos, no "valores" del elemento, o bien en la función suma, o bien en la función calculo deberías recoger ese valor, no la longitud del array elementos.

También deberías tener algún control para que el usuario no pulse dos veces sobre el mismo elemento y no se añada este dos veces (a no ser que sí esté permitido añadir el mismo elemento más de una vez)

1voto

steven comentado

he aportado algunas modificaciones pero todavia hay algunas cosas que no me quedan bien claras, mi intencion primaria era asignar un valor numerico a un elemento especifico
pero me doy cuenta que fue una pesima idea sin embargo creo
que si anadia un eventlistener podria solventar el problema
bueno la cuestion es que no entiendo como se va a sumar el valor de mi boton si lo encierro entre comillas, osea eso esta reservado para los parametros si no me equivoco
la funcion de sumar es sencilla guarda el valor de mi boton en mi array elementos para posteriormente sumarlas y luego imprimirlas en una seccion de mi pagina
el problema es que no se la manera de sumar los valores de mi array, he pensado acceder por indice a cada valor y guardarlo en una variable cada una, la otra opcion que se me ocurre es guardarlo en mi objeto, pero en este caso no tendria sentido porque el array es lo mismo, para mi el problema es que si se tratara de muchos productos por ejemplo 100 nunca terminaria

<button id="boton1" onclick="calculo()">calcola</button>
<button id="boton2" onclick="sumar(10)">agregar</button>
<button id="boton3" onclick="sumar(20)">agregar</button>

<span id="dato"></span>

var elementos = [];

function sumar () {

//esta funcion deberia guardar el valor de mi  boton2 y boton3 en mi array, 
elementos.push(elemento);

}

function calculo() {

// esta funcion deberia sumar todos los valores de mi array y luego imprimirlos en la pagina

var resultado = elementos.length  
document.getElementById('dato').innerHTML = resultado

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta