Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Dimitar Stefanov

Páginas: 1 ... 19 20 21 22 23 [24] 25 26 27 28 29 30
461
Buenas, César Krall.

Primero felicitarte por el curso.

Sí, con los conceptos soy un desastre. Se me olvidan, me equivoco...pero creo que con más práctica y más ejercicios mejoraré.

Sobre la idea de crear 2 funciones con el mismo nombre, es que creo que es la mejor manera de ver un código cómo funciona haciéndolo funcionar de la manera que quieres probar.

Saludos.

462
Buenas, Pedro.

Como en el ejercicio ponía:

Citar
b) Comprobar que el correo electrónico contiene el carácter @ (arroba) y el carácter . (punto). De no ser así, deberá aparecer un mensaje indicando que al correo electrónico le falta uno o ambos caracteres. Por ejemplo si se trata de enviar pacogmail.com deberá aparecer el mensaje: “Falta el símbolo @ en el correo electrónico”

pensé que también debería de aparecer ese error.

463
La posible solución del ejercicio CU01147E del curso JavaScript desde cero es:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">
function cometa(diametro,temperatura,nombre){
this.diametro=diametro;
this.temperatura=temperatura;
this.nombre=nombre;
}

cometa.prototype=new prototipoCometa();

function prototipoCometa(){
this.difinicionSegunDiccionario='Los cometas son cuerpos celestes constituidos por hielo, polvo y rocas que orbitan alrededor del Sol siguiendo diferentes trayectorias elípticas, parabólicas o hiperbólicas. Los cometas, junto con los asteroides, planetas y satélites, forman parte del Sistema Solar.';
this.obtenerRadio=function(){this.radio=this.diametro/2;}
this.obtenerFarenheit=function(){this.farenheit=this.temperatura+32;};

}

function ejemploObjetos(){
var cometa1=new cometa(2000,800,'McNaught');
var cometa2=new cometa(3500,900,'West');
var cometa3=new cometa(5500,1000,'Ikeya-Seki');
cometa1.obtenerRadio();
cometa1.obtenerFarenheit();
alert('El diametro del cometa: '+cometa1.nombre+' es de: '+cometa1.diametro+'m, su tempertarua es de: '+cometa1.temperatura+'ºC. \nTiene un radio de :'+cometa1.radio+'m y su tempertaura en Farenheit es: '+cometa1.farenheit+'ºF.\n\nLa definición del dicho cometa es: '+cometa1.difinicionSegunDiccionario);
cometa2.obtenerRadio();
cometa2.obtenerFarenheit();
alert('El diametro del cometa: '+cometa2.nombre+' es de: '+cometa2.diametro+'m, su tempertarua es de: '+cometa2.temperatura+'ºC. \nTiene un radio de :'+cometa2.radio+'m y su tempertaura en Farenheit es: '+cometa2.farenheit+'ºF.\n\nLa definición del dicho cometa es: '+cometa2.difinicionSegunDiccionario);
cometa3.obtenerRadio();
cometa3.obtenerFarenheit();
alert('El diametro del cometa: '+cometa3.nombre+' es de: '+cometa3.diametro+'m, su tempertarua es de: '+cometa3.temperatura+'ºC. \nTiene un radio de :'+cometa3.radio+'m y su tempertaura en Farenheit es: '+cometa3.farenheit+'ºF.\n\nLa definición del dicho cometa es: '+cometa3.difinicionSegunDiccionario);
}

</script>
</head>
<body>
<div id="cabecera" style="text-align: center;">
<h2>Cursos Aprenderaprogramar.com</h2>
<h3>Ejemplo JavaScript</h3>
</div>
<input style="margin-left: 45%;" type="button" value="Info Cometas" onclick="ejemploObjetos()"></input>
</body>
</html>

Gracias.

464
Gracias por mirarte el código bermartinv.

Algún comentario sobre el punto a) ?

He encontrado este enlace (foro):

https://www.aprenderaprogramar.com/foros/index.php?topic=3167.msg14092#msg14092

y no sé. Yo lo he podido invocar mediante el sintaxis de anotación de punto (o por lo menos eso creo, jejeje).

Alguna sugerencia?

Gracias

465
Solución del ejercicio CU01146E del curso JavaScript desde cero.

Citar
EJERCICIO

El siguiente código hace uso de la notación tipo array para invocar propiedades. También crea objetos únicos (los objetos plus, minus, operaciones y calcular). Analiza el código y trata de comprender todo lo que hace.

Se pide realizar los siguientes cambios:

a) Reemplaza toda la notación basada en sintaxis tipo array para el acceso a propiedades por sintaxis basada en notación de punto. Ejecuta el código y comprueba su funcionamiento.

b) Sobre el código de la opción a), cambia la definición de objetos para que no sean objetos únicos, sino que plus, minus y calcular sean funciones simples, y operaciones un objeto instanciable (que tendrás que instanciar si es necesario). Ejecuta el código y comprueba su funcionamiento.

c) Sobre el código de la opción c), añade la posibilidad de hacer cálculos de multiplicación y división de la misma forma que se hacen cálculos de suma y resta. Muestra un mensaje por cada tipo de operación. Ejecuta el código y comprueba su funcionamiento.

Código original:

Código: [Seleccionar]
<!DOCTYPE html>

<html><head><title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">

<script type="text/javascript">

var plus = function(x,y){ return x + y };

var minus = function(x,y){ return x - y };

var operaciones = {

  '+': plus,

  '-': minus

};

var calcular = function(x, y, operacion){ return operaciones[operacion](x, y); }

function ejemploObjetos() {

alert ('Resultado de calcular(3, 15, \'+\') es '+ calcular(3,15, '+'));

}

</script>

</head>

<body><div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3></div>

<div style="color:blue;" id ="pulsador" onclick="ejemploObjetos()"> Probar </div>

</body>
</html>

1) Solución del primer subpunto:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">
var plus=function(x,y){return x + y};
var minus=function(x,y){return x - y};
var operaciones={
sumar:plus,
'-':minus
};

var calcular=function(x,y){return operaciones.sumar(x,y);}

//La única manera que se me ha ocurrido de reemplazar la notación basada en sintaxis tipo array por sintaxis basada en notación de punto era cambiar el parámetro '+' por otro que no fuera símbolo reservado por JavaScript. En este caso lo sustituí por el parámetro "sumar". Si mantuvieramos el nombre de la propiedad '+' no tendríamos más remedio que invocarla mediante el sintaxis: operaciones.['+'], pero de este modo también conservaríamos la notación basada en sintaxis tipo array y no es lo que pide el ejercicio.

function ejemploObjetos(){
alert('Resultado de calcular(3,15\'+\')es: '+calcular(3,15));

}
</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color: blue;" id="pulsar" onclick="ejemploObjetos()">Probar</div>
</body>
</html>

2) Solución del segundo subpunto:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">
function plus(x,y){
return(x+y);
}

function minus(x,y){
return(x-y);
}

function operaciones(x,y){
this.sumar=plus(x,y);
this.restar=minus(x,y);
};

function calcular(x,y){
var operacionesMat= new operaciones(x,y);
alert(x+' más '+y+' es igual a: '+operacionesMat.sumar);
}


function ejemploObjetos(){
calcular(3,5)

}
</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color: blue;" id="pulsar" onclick="ejemploObjetos()">Probar</div>
</body>
</html>

3)Tercer subpunto:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">
function plus(x,y){
return(x+y);
}

function minus(x,y){
return(x-y);
}

function por(x,y){
return(x*y);
}

function entre(x,y){
return(x/y);
}

function operaciones(x,y){
this.sumar=plus(x,y);
this.restar=minus(x,y);
this.multiplicar=por(x,y);
this.dividir=entre(x,y);
};

function calcular(x,y){
var operacionesMat= new operaciones(x,y);
alert(x+' más '+y+' es igual a: '+operacionesMat.sumar);
alert(x+' menos '+y+' es igual a: '+operacionesMat.restar);
alert(x+' multiplicado por '+y+' es igual a: '+operacionesMat.multiplicar);
alert(x+' dividido entre '+y+' es igual a: '+operacionesMat.dividir);
}


function ejemploObjetos(){
calcular(3,5)

}
</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color: blue;" id="pulsar" onclick="ejemploObjetos()">Probar</div>
</body>
</html>

Como podemos observar, en todo el ejercicio he intentado utilizar sintaxis basada en notación de punto. Observarán que en algunos puntos el código se hace muy repetitivo, pero era la única manera de no utilizar notación basada en sintaxis tipo array.

466
Sí, es la manera lógica de poder utilizar la función como un "constructor". Gracias por corregirme.

Saludos.

467
Sí, sí. Es así. Te comenté que no veía mucho sentido que siempre apareciera el nombre del mismo médico, pero había entendido así el ejercicio.

Saludos.

468
Posible solución del ejercicio CU01145E del cursjo JavaScript desde cero.

Citar
EJERCICIO

Una de las utilidades de crear objetos vacíos es evitar conflictos de nombres. Supón que creas funciones como:

function crearEntrada() {     // hacer algo  }

function crearSalida() {    // hacer algo  }

 

El problema que se presenta es que en otro momento se pueda definir otra función con el mismo nombre que alguna de las ya definidas, creando un conflicto de nombres.

Crea un objeto vacío denominado GestionDeUsuarios y añádele dos métodos: un método preguntarNombre y un método despedir. Al invocar GestionDeUsuarios.preguntarNombre() se debe establecer la propiedad nombre del objeto con un nombre introducido por el usuario y un id de usuario introducido también por el usuario. Al invocar el método GestionDeUsuarios.despedir() se debe mostrar un mensaje de despedida “Hasta luego nombreDeUsuario” donde nombreDeUsuario será el nombre correspondiente.

Responde la siguiente pregunta: ¿si se crea una función despedir entrará en conflicto con el método definido?

Solución:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Curso JavaScript</title>
<script type="text/javascript">
var GestionDeUsuarios={
bienvenida:function(){
this.nombre=prompt('Introducir su nombre');
this.id=prompt('Introducir su Id');
},
despedir:function(){alert('Hasta luego '+this.nombre)}
}
GestionDeUsuarios.bienvenida();
GestionDeUsuarios.despedir();

function despedir(){
alert('Como podemos comprobar no se crea un conflicto entre las dos funciones "despedir()" porque esta es externa y la otra es interna (está dentro de un objeto definido creado con el método Sigleton)');
}
</script>
</head>
<body>
<div style="text-align: center; margin: 20% 0;">
<input type="button" value="Invocar la segunda función 'despedir()' " onclick="despedir()"></input>
</div>
</body>
</html>

Gracias.

PD: Contesto a la última pregunta mediante el botón en el código.

469
Buenas, bermartinv.

Veo el código bien y las observaciones por parte de Ogramar.

Sólo una cosita que se te ha escapado en el segundo código que has puesto. Creo que en el ejemplo de las funciones externas querías poner function aumentar y no disminuir, porque realmente, después de la corrección por tu parte, lo que haces es aumentar las personas curadas. Pero ya te digo, supongo que es por no darte cuenta.

Para ver que el método "curarPersonas" funciona correctamente, yo invoqué primero el método "mostrarDatos" luego "curarPersonas" y después otra vez "mostrarDatos". De dicha forma realmente se observa que la cantidad de las personas curada sube (sin que tengas que mirar el código "por dentro").

Mira, mi código ha quedado de la siguiente forma:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">

function medico(){
this.nombre='Juan Eslava';
this.personasCuradas=8;
this.especialidad='traumatología';
this.curarPersonas=function(){
this.personasCuradas=this.personasCuradas+1;
}
this.mostrarDatos=function(){
var msg='El médico se llama: '+this.nombre+', su especialidad es: '+this.especialidad+' y lleva curadas: '+this.personasCuradas;
alert(msg);
}
}


function ejemploObjetos(){
var datosMedico= new medico();
var datosMedico2=new medico();//no se ve la diferencia, porque las propiedades en la función medico(); tienen el mismo valor, pero vemos que el código funciona.
datosMedico.mostrarDatos();
datosMedico.curarPersonas();
datosMedico.mostrarDatos();
datosMedico.curarPersonas();
datosMedico.mostrarDatos();
datosMedico2.mostrarDatos();
datosMedico2.curarPersonas();
datosMedico2.mostrarDatos();
datosMedico2.curarPersonas();
datosMedico2.mostrarDatos();
}
</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color: blue;" id="pulsador" onclick="ejemploObjetos()">Probar ejercicio</div>
</body>
</html>

También tengo que decir que no tiene mucho sentido crear dos objetos definidos con los mismos valores, pero como en el ejercicio ponía que siempre se tenía que mostrar que el médico se llama: Juan Eslava y es traumatólog, decidí que no tendía que pasar los valores como parámetros de una función a la otra, pero debo admitir que como lo has hecho tu, se ve que son dos médicos distintos.

Saludos.

470
A continuación pongo una posible solución del ejercicio CU01144E del curso JavaScript desde cero:

Citar
EJERCICIO

Define un tipo de objeto Medico en JavaScript que tenga como propiedades: nombre (String), personasCuradas (número entero), especialidad (String) y como métodos un método denominado curarPersona y otro método denominado mostrarDatos. El método curarPersona deberá añadir una unidad al valor de la propiedad personasCuradas y el método mostrarDatos deberá mostrar los datos el médico. Por ejemplo, “El médico se llama Juan Eslava, su especialidad es traumatología y lleva curadas 8 personas”. Crea dos objetos del tipo definido, e invoca sus métodos para comprobar que funcionan correctamente.

Código:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">

function medico(){
this.nombre='Juan Eslava';
this.personasCuradas=8;
this.especialidad='traumatología';
this.curarPersonas=function(){
this.personasCuradas=this.personasCuradas+1;
}
this.mostrarDatos=function(){
var msg='El médico se llama: '+this.nombre+', su especialidad es: '+this.especialidad+' y lleva curadas: '+this.personasCuradas;
alert(msg);
}
}


function ejemploObjetos(){
var datosMedico= new medico();
var datosMedico2=new medico();//no se ve la diferencia, porque las propiedades en la función medico(); tienen el mismo valor, pero vemos que el código funciona.
datosMedico.mostrarDatos();
datosMedico.curarPersonas();
datosMedico.mostrarDatos();
datosMedico.curarPersonas();
datosMedico.mostrarDatos();
datosMedico2.mostrarDatos();
datosMedico2.curarPersonas();
datosMedico2.mostrarDatos();
datosMedico2.curarPersonas();
datosMedico2.mostrarDatos();
}
</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color: blue;" id="pulsador" onclick="ejemploObjetos()">Probar ejercicio</div>
</body>
</html>

PD: Utilicé funciones internas porque así lo proponían en la entrega CU01144E.

Gracias

471
Buenas, bermartinv (escribo tu nick en minúscula, no por tenerte menos respeto, sino que no se tu nombre y no sé si te llamas Bermartin o es un pseudónimo).

Al lío, gracias por corregirme el código. Y sobre los códigos separados, pues sí, tienes razón, es un coñazo copiarlos de uno en uno, pero cuando hice el curso HTML desde cero, siempre ponían los códigos CSS aparte. Suponía que así era mas "formal". Tomo nota, a partir de ahora lo pondré todo en un mismo código.

Saludos.

PD: ah, puse el útlimo "alert" para ver si escribías el mail en mayúsculas realmente se convertían en minúsculas :)

472
Gracias por corregirme el ejercicio y dedicar vuestro tiempo chicos.

Sí, Pedro, tienes razón, no había caido que pasando un parámetro puedes hacer los dos requisitos del ejercicio en la misma función.

Bermartinv, gracias por compartir tu código también. Funciona a la perfección. Has utilizado una condicional para diferencias si el parámetro que le pasas es "caja" o no. Me gusta la idea. Tomo nota de las dos observaciones.

A seguir programando, jeje.

473
Posible solución del ejercicio CU01143E del curso JavaScript desde cero.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta />
<title>Curso JavaScript</title>

<script type="text/javascript">

function CuentaBancaria(nombre,apellidos,saldo){
this.nombreCuenta=nombre;
this.apellidosCuenta=apellidos;
this.saldoCuenta=saldo;
this.mostrarDatos=function (){
var msg='\t\tAcaba de crear su nueva cuenta.\n\n';
msg=msg+'Los datos de la cuenta son:\n\n Nombre: '+this.nombreCuenta;
msg=msg+';\n Apellidos: '+this.apellidosCuenta+';\n Saldo: '+this.saldoCuenta+'euros';
alert(msg);
}
}

function entrarDatos(){
var nombre=prompt('Introduzca su nombre');
var apellidos=prompt('Introduzca sus apellidos');
var saldo=prompt('Introduzca el saldo de su cuenta');
var cuenta=new CuentaBancaria(nombre,apellidos,saldo);
cuenta.mostrarDatos();
}
</script>
</head>
<body>
<div id="cabecera" style="text-align: center;">
<h2>Ejercicio CU01143E del curso JavaScript desde cero</h2>
<input type="button" value="Crear cuenta bancaria" onclick="entrarDatos()"></input>
</div>

</body>
</html>

Gracias por corregir :)

474
Solucion del ejercicio CU01142E del curso JavaScript desde cero.

Código HTML:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="description" content="Curso JavaScript"/>
<meta name="keywords" content="programar,cursos,JavaScript,aprenderaprogramar.com"/>
<link rel="stylesheet" type="text/css" href="CU01142E.css"/>
<script type="text/javascript" src="CU01142E.js"></script>
</head>
<body>
<div id="contenedor">
<form name="formulario1" method="get" onsubmit="validar()">
<h2>Formulario ejemplo cadenas Texto</h2>
<label for="nombre"><span>Nombre:</span><input type="text" id="nombre" name="nombre"></input></label>
<label for="apellidos"><span></span>Apellidos:<input type="text" id="apellidos" name="apellidos"></input></label>
<label for="email"><span>Correo Electrónico:</span><input type="text" id="email" name="email"></input></label>
<label><input type="submit" value="Enviar"></input><input type="reset" value="Cancelar"></input></label>
</form>
</div>

</body>
</html>

Código CSS:

Código: [Seleccionar]
body{
font-family: sans-serif;
text-align: center;
background-color: grey;
font-size: 2em;
}
label{
display: block;
margin: 5px;
}

Código JavaScript:

Código: [Seleccionar]
function validar(){
var datos=document.getElementsByTagName('input');
if(datos[0].value.length<3){
alert('El nombre no cumple tener al menos tres letras');
}
if((datos[2].value.indexOf('@')==-1)&&(datos[2].value.indexOf('.')==-1)){
alert('Falta el símbolo @ y . en el correo electrónico');
}else if(datos[2].value.indexOf('@')==-1){
alert('Falta el símbolo @ en el correo electrónico');
}else if(datos[2].value.indexOf('.')==-1){
alert('Falta el símbolo . en el correo electrónico');
}
datos[2].value=datos[2].value.toLowerCase();
datos[2].value=datos[2].value.replace(/at/g,'@');
datos[2].value=datos[2].value.replace(/ /g,'');
alert(datos[2].value); //comprobar si los valores del campo "correo electrónico" se envían bien.
}


Gracias.

475
Gracias chicos!!!

Ahora sí lo comprendí :)

Gracias por la paciencia tambien. Sigo creando códigos (o por lo menos intentando, jejeje).

Saludos.

476
Solución del ejercicio CU01141E del curso JavaScript desde cero.

Código primario (inicial):

Código: [Seleccionar]
<!DOCTYPE html>

<html><head> <title>Curso JavaScript aprenderaprogramar.com</title><meta charset="utf-8">

<style type="text/css">

body {font-family: sans-serif; text-align:center; }

div {border-style:solid;margin: 30px; padding:25px; display:inline-block;}

div div {background-color: yellow;}

</style>

<script type="text/javascript">

function crearNodoHijo(nodoPadre) {

var nodoHijo = nodoPadre;

document.body.appendChild(nodoHijo);

}

</script>

</head>

<body>

<div id="nodoRaiz" onclick="crearNodoHijo(this)">Pulsa aquí para duplicar este nodo</div>
</body></html>

Citar
EJERCICIO

El siguiente código pretendía duplicar un nodo cada vez que se pulsara sobre él, de modo que inicialmente apareciera en pantalla el mensaje “Pulsa aquí para duplicar este nodo” y que cada vez que se pulsara sobre él, se duplicara (tantas veces como veces se pulsara). El problema es que no funciona, es decir, no obtenemos ningún resultado. Analiza el código y responde estas cuestiones:

1) ¿Por qué no funciona?

1) Realmente, tal y como tenemos el código, lo que hace es sustituir el nodoPadre por el nodoPadre. Visualmente no se ve ningún cambio porque los dos div son idénticos y el nodoHijo se sobrepone al nodoPadre. Podrías ver que funciona el código incluyendo la siguiente línea:

Código: [Seleccionar]
nodoHijo.style.backgroundColor="yellow";
de modo que el código nos quedaría de la siguiente manera:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Curso JavaScript aprenderaprogramar.com</title>
<meta charset="utf-8">
<style type="text/css">
body {font-family: sans-serif; text-align:center; }
div {border-style:solid;margin: 30px; padding:25px; display:inline-block;}
div div {background-color: yellow;}
</style>
<script type="text/javascript">
function crearNodoHijo(nodoPadre) {
var nodoHijo = nodoPadre;
nodoHijo.style.backgroundColor="yellow";
document.body.appendChild(nodoHijo);
}
</script>
</head>
<body>
<div id="nodoRaiz" onclick="crearNodoHijo(this)">Pulsa aquí para duplicar este nodo</div>
</body></html>

Por lo tanto, podemos concluir que sí funciona el código pero no de la manera que nos gustaría.

Citar
2) Realiza los cambios en el código que nos permitan realizar lo que teníamos previsto creando un nuevo nodo del mismo tipo y con el mismo texto que el deseado y añadiéndolo como último hijo del nodo body.

2) El código de la segunda condición quedaría así:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Curso JavaScript aprenderaprogramar.com</title>
<meta charset="utf-8">
<style type="text/css">
body {
font-family: sans-serif;
text-align:center;
}
div {
border-style:solid;
margin: 30px;
padding:25px;
display:inline-block;
}
div div {
background-color: yellow;
}
</style>
<script type="text/javascript">
function crearNodoHijo() {
    var nodoHijo=document.createElement('div');
    var nodoTexto=document.createTextNode('Pulsa aquí para duplicar este nodo');
nodoHijo.onclick=function (){crearNodoHijo()};
    nodoHijo.appendChild(nodoTexto);
    document.body.appendChild(nodoHijo);
}
</script>
</head>
<body>
<div id="nodoRaiz" onclick="crearNodoHijo()">Pulsa aquí para duplicar este nodo</div>
</body>
</html>

Citar
3) Realiza los cambios en el código que nos permitan realizar lo que teníamos previsto clonando el nodo con el método cloneNode y añadiendo el nodo clonado como último hijo del nodo body.

3) El código del subpunto 3 sería así:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Curso JavaScript aprenderaprogramar.com</title>
<meta charset="utf-8">
<style type="text/css">
body {
font-family: sans-serif;
text-align:center;
}
div {
border-style:solid;
margin: 30px;
padding:25px;
display:inline-block;
}
div div {
background-color: yellow;
}
</style>
<script type="text/javascript">
function crearNodoHijo(nodoPadre) {
var nodoHijo=nodoPadre.cloneNode(true);
document.body.appendChild(nodoHijo);
}
</script>
</head>
<body>
<div id="nodoRaiz" onclick="crearNodoHijo(this)">Pulsa aquí para duplicar este nodo</div>
</body>
</html>

Gracias


477
Posible solución del ejercicio CU01140E del curso JavaScript desde cero con ejercicios resueltos de aprenderaprogramar.

Código HTML:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="description" content="Curso JavaScript"/>
<meta name="keywords" content="programar,cursos,aprenderaprogramar.com"/>
<title>JavaScript</title>
<link rel="stylesheet" type="text/css" href="CU01140E.css"/>
<script type="text/javascript" src="CU01140E.js"></script>
</head>
<body>
<div>
Curso JavaScript aprenderaprogramar.com
</div><br/>
<input type="button" value="Añadir al final" onclick="alFinal()"/>
<input type="button" value="Anidar" onclick="anidar()"/><br/>
</body>
</html>

Código CSS:

Código: [Seleccionar]
body{
font-family: sans-serif;
text-align: center;
}
div{
border-style: solid;
margin: 20px;
padding: 15px;
display: inline-block;
}

Código JavaScript:

Código: [Seleccionar]
var click=1;

function anidar(){
var nodoHijo=document.createElement('div');
var nodoPadre=document.getElementsByTagName('div');
var nodoText=document.createTextNode('Nodo Creado '+click);
nodoPadre[0].appendChild(nodoHijo);
nodoHijo.appendChild(nodoText);
click++;
}

function alFinal(){
var nodoHijo=document.createElement('div');
var nodoText=document.createTextNode('Nodo Creado '+click);
var nodoPadre=document.getElementsByTagName('html');
nodoPadre[0].appendChild(nodoHijo);
nodoHijo.appendChild(nodoText);
click+=1;
}

Gracias.

478
Duda solucionada, jejeje.

Y sobre las variables y sus nombres, no te puede decir que no es así, porque sí, tienes toda la razón del mundo. Debería de empezar a poner las cosas por sus nombres y no inventarme las variables sin ningún sentido:)

Saludos (y gracias por corregirme los ejercicios).

479
Hola, Pedro.

Esto sí lo había entendido, lo que no entendí es porque cuando pongo:

Código: [Seleccionar]
Numero=Number;
el navegador no sabe que la variable (o array) tiene que ser un número si expresamente le indico que es un número (Number). Es decir este código:

Código: [Seleccionar]
<script type="text/javascript">
function sumar(){
var msg='Multiplicamos por 5 los números introducidos:\n';
var Numero=[], Cardenal=['primer','segundo','tercer','cuarto','quinto'];
Numero=Number;
alert('A continuación introduce 5 números.')
for(j=0;j<5;j++){
Numero[j]=prompt('Estás introduciendo el '+Cardenal[j]);
}
for(i in Numero){
msg=msg+Numero[i]+'+5='+Numero[i]+5+'         ';
}
alert(msg);
}
</script>

y el tuyo:

Código: [Seleccionar]
<script type="text/javascript">
function sumar(){
var msg='Multiplicamos por 5 los números introducidos:\n';
var Numero=[], Cardenal=['primer','segundo','tercer','cuarto','quinto'];
alert('A continuación introduce 5 números.')
for(j=0;j<5;j++){
Numero[j]=prompt('Estás introduciendo el '+Cardenal[j]);
}
for(i in Numero){
msg=msg+Numero[i]+'+5='+(Number(Numero[i])+5)+'         ';
}
alert(msg);
}
</script>

por qué son diferentes, si en los dos le decimos al navegador que la variable Numero tiene que ser un número. Es eso lo que no entiendo.

En el primero se lo decimos con la línea:

Código: [Seleccionar]
Numero=Number;

y en el segundo con la línea:

Código: [Seleccionar]
msg=msg+Numero[i]+'+5='+(Number(Numero[i])+5)+'         ';
pero tendría que funcionar igual, ¿no?

Gracias

480
Posible solución del ejercicio CU01138E del curso JavaScript desde cero.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Curso JavaScript</title>
<style type="text/css">
body{
text-align: center;
font-size: 10em;
margin: 10% 30%;
}
div div{
border: solid;
width: 200px;
height: 200px;
float: left;
}
</style>
<script type="text/javascript">
var click;
click=1;
function cambiarAspecto(){
if(click==1){
document.getElementById('caja1').innerHTML='<div style="font-size: 0.5em; line-height: 2.2em; background-color: black; color: white; border: none; ">El</div>';
}
if(click==2){
document.getElementById('caja2').innerHTML='<div style="font-size: 0.5em; line-height: 2em; border: none;">poder</div>';
}
if(click==3){
document.getElementById('caja3').innerHTML='<div style=" font-size: 0.5em; line-height: 2.2em; border: none;">de</div>';
}
if(click==4){
document.getElementById('caja4').innerHTML='<div style="font-size: 0.25em; line-height: 5em; background-color: yellow; border: none;">JavaScript</div>';
}if(click==5){
alert('No es posible avanzar más!');
}
click++;
}
</script>
</head>
<body>
<div id="contenedor">
<div id="caja1">?</div>
<div id="caja2">?</div>
<div id="caja3" style="clear: both;">?</div>
<div id="caja4">?</div>
</div>
<div id="limpiardor" style="clear: both;"></div>
<input type="button" Value="Avanzar" onclick="cambiarAspecto()"></input>
</body>
</html>

Gracias.

Páginas: 1 ... 19 20 21 22 23 [24] 25 26 27 28 29 30

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".