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

2votos

como asignar valores a un elemento del dom

de que manera puedo pasar un valor numerico a un elemento del dom por ejemplo si quiero que la linea siguiente de codigo pase un valor a mi array definido en mi funcion

<button onclick="agregar()"<div id="elemento" dato="10"></div></button> 

como haria para que al presionar mi boton se agrege en mi array el numero 10

var miarray =   []
//este es mi array vacio que contendra los valors pasados por mi boton

function agregar (){}
// en esta funcion deberia ser llamada al presionar el boton y almacenar el numero 10 en miarray

en fin el problema quedo claro, como rayos puedo pasar un valor NUMERICO a miarray al presionar mi boton??!!

1 Respuesta

3votos

magarzon Puntos30650

Como ya te he respondido en otra de tus preguntas, la respuesta general sería: haciendo un curso básico de programación.

El método de intentar, fallar y preguntar está muy bien, pero cuando se tienen unas nociones básicas, porque si no, pasa que ni siquiera entiendes las respuestas.

Esto que preguntas, lo has preguntado ya como 4 veces de manera diferente, y además es algo muy, muy básico, por lo que el problema lo tienes en la base, y hasta que no arregles ese "problema", no vas a poder avanzar con todos los demás.

0voto

steven comentado

la idea de tomar un curso no es mala idea, pero prefiero aprender por mi cuenta, en cuanto a las preguntas repetidas es por que tu respuesta no era exaustiva, tu me recomendabas de asignar el valor entre parentesis asi
onclick(1), y esto causaba algunos problemas cuando queria crear mas botones y asignarles un valor distinto por ejemplo
<button onclick=agregar(10)>este boton vale 10 puntos</button>
<button onclick=agregar(15)>este boton 15puntos</button>

el problema surge en mi funcion agregar, causa confusion porque si hago click en mi primer boton, se ejecuta la funcion agregar que recibe 10, pero si lo hago en mi segundo boton se ejecuta la otra funcion, en si esto causaria problemas porque ambos tiene la misma funcion.
si tu conoces la solucion entonces pasame el codigo que lo pruebo y lo analizo con calma.

mi codigo deberia hacer lo siguiente, lo describo paso por paso

  1. los botones deberian de tener un valor numerico distinto
  2. estos valores numericos deberian guardarse en un array
  3. los valores del array se deberian sumar uno con el otro
  4. el resultado de la suma deberia imprimirse en la pagina

0voto

magarzon comentado

Yo doy respuestas exhaustivas cuando la pregunta es exhaustiva, y tengo todos los datos para darte una respuesta.

¿Qué significa que cuando pulsas el segundo botón se llama "la otra función". ¿Qué otra función?

Y repito, para darte una respuesta más amplia, faltan dato, para empezar:

¿Cómo generas el html de los botones? ¿Dinámicamente con un PHP?

0voto

steven comentado

tranquilo amigo no te hagas problemas a veces no entiendo a la primera, bueno el caso es que mi codigo esta hecho solo de html y js te lo muestro una vez mas
<button id="boton1" onclick="agregar(10)">10puntos</button>
<button id="boton2" onclick="agregar(20)">20puntos</button>

<script>
var puntos = [];
function agregar(){
puntos.push() }

// para ti esta correcto, osea cada vez que se presione el boton deberia de agregarse al array los numeros que declaro entre parentesis

ulteriormente estos numeros deberian de sumarse pero mejor vayamos por partes
verifica si esta todo bien
</script>

0voto

magarzon comentado

Entiendo que te faltan los parámetros en la función agregar y en la función push, que los has omitido por alguna razón, pero que existen, por lo demás, ok.

0voto

steven comentado

no he omitido nada, es por eso que te pido que lo verifiques, yo se que hay unos errores y falta algo pero no se cuales son.
yo quiero que el usuario cuando presione uno de los botones se ejecute la funcion agregar que guardaria el numero en mi array, me entiendes.
yo quiero que el codigo sea autonomo, quiero que haga todo eso por si solo.
por ahora solo quiero que almacene numeros en mi array cada vez que un usuario presiona mi boton.
que parametros deberia recibir la funcion, que codigo extra deberia ir dentro de la funcion, etc

0voto

magarzon comentado

Creo que en otra respuesta a otra de tus preguntas ya te puse el código entero, pero en fin, allá va de nuevo:

<script>

var puntos = [];

function agregar(num) {
    puntos.push(num);
}

</script>

0voto

steven comentado

entonces debo pasar entre parentesis los dos numeros? es decir debo hacer
function agregar(10, 20){puntos.push(10,20)}, pero si hago esto que sentido tiene haberlo declarado antes en mi boton??
aparte esto, es necesario cada vez que creo un boton nuevo con un valor, ir a mi codigo javascript y pasarlo, esto no se podria hacer automaticamente?

2votos

magarzon comentado

No. ¿Ves como al no tener una base ni siquiera comprendes una respuesta básica?

El num de la función agregar se llama parámetro de la función.

Cuando llamas a la función desde uno de los botones, ese num toma el valor que se le pase en la llamada.

Porque una cosa es la declaración (lo que yo te escribí en la anterior respuesta) y otra la llamada (el agregar(10) o el agregar(20) que hay en cada botón

1voto

steven comentado

aver si no entendi mal, eso siginifica que el numero que pase por parametro en mi funcion agregar por el atributo onclick, hace referencia al otro parametro con la misma funcion, es decir que el parametro num de mi funcion es equivalente a mi numero pasado por parametro correcto.
creo que entendi el concepto, pero debo decir que es muy complicado
ahora gracias a esto creo voy a poder almacenar uno o mas numeros en mi array sin ningun problema.
resumiendo en la funcion agregar de mi script debe ir siempre un parametro como refencia a mi otro parametro definido en mi boton.

1voto

magarzon comentado

Más o menos lo has pillado.

Te lo vuelvo a poner, para que te quede claro:

1) Definición de función: es donde defines qué nombre tiene tu función (por ejemplo agregar), qué parámetros tiene (por ejemplo num) y qué código ejecuta (lo que va entre los dos {}). Esto por lo general va en un fichero aparte o dentro de un bloque de etiquetas <script></script>

2) Llamada a una función. Es cuando realmente ejecutas el código que hay dentro de la función (lo que está entre los dos {}). Se ejecuta indicando el nombre de la función, junto con los parámetros (si es que tiene), por ejemplo, agregar(10), y puede ejecutarse bien como respuesta a un evento (por ejemplo asociado al onclick del botón), bien porque se le llame directamente desde otra función o desde el código principal.

Si esto, que es el ABC de la programación, te parece complicado, no te quiero ni contar cuando empieces con programación orientada a objetos o quieras utilizar la librería que has puesto en la otra pregunta.

1voto

steven comentado

digamos que algo un poco enredado, personalmente no uso nunca parametros en mis funciones porque no encontraba un caso que lo requisiese, bueno creo haber resuelto mi problema, eventualmente surgiran problemas mas gruesos y debo estar preparado, bueno muchas gracias por tu colaboracion, eres mi idolo!!

1voto

steven comentado

efectivamente ahora si funciona mi codigo como deberia, te lo comparto

<script>

    var array = [];
    function agregar(n){array.push(n);}
    function imprimir_suma() {
        for (var i = 0; i<=array.length; i++) 
        {
          document.write(array[i]);
        }
    }
</script>
</head>
<body>
<button id="boton1" onclick="agregar(10)">10puntos</button>
<button id="boton2" onclick="agregar(20)">20puntos</button>
<button id="boton3" onclick="imprimir_suma()">puntostotales</button>

extranamente cuando pulso mi boton3 este me devuelve un error me aparece
undefined, aparece esto 1020indefined? no entiendo que cosa no esta definida

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