JavaScript - Duda de principiante: no arranca el script

 
Vista:
Imágen de perfil de Israel
Val: 39
Ha disminuido su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Duda de principiante: no arranca el script

Publicado por Israel (18 intervenciones) el 15/05/2020 12:32:57
He generado dos scripts sencillos en mi hoja HTML.

El primero es un simple alert que se ejecuta correctamente y el segundo un condicional para permitir al usuario
cambiar el color de fondo de un titular.

El primero se ejecuta, pero el segundo no se sin saber el por qué.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
	<html>
		<head>
			<title>Primera Pagina Web</title>
 
			<script>
				alert("Bienvenido a mi Pagina");
			</script>
		</head>
 
		<body>
 
			<h1>Primera Pagina</h1>
 
			<p>Haciendo pruebas con JavaScript</p>
 
 
			<script>
 
					var h1=document.getElementsByTagName("h1");
 
					var color=prompt("Que color deseas para el fondo del h1: azul o rojo?");
 
					if (color=="azul"){
 
						h1.style.backgroundColor="blue";}
 
					else if (color=="rojo"){
 
						h1.style.backgroundColor="red";}
 
 
			</script>
 
		</body>
	</html>

un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Israel
Val: 39
Ha disminuido su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Duda de principiante: no arranca el script

Publicado por Israel (18 intervenciones) el 15/05/2020 14:47:03
He modificado el nombre de ambas variables por si fuera algun problema de nomenclatura y se mantiene el problema.

He intentado editar mi pregunta anterior para evitar generar ete mensaje como reespuesta pero no he sido capaz.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 59
Ha aumentado su posición en 2 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Duda de principiante: no arranca el script

Publicado por luis (22 intervenciones) el 16/05/2020 03:18:35
Hola. He probado tu código en Frontpage y el error está en que estás empleando nombres reservados para nombrar las variables, y eso confunde al sistema.

Además no puedes emplear la forma h11.style.backgroundColor puesto que "style" está reservado sólo para identificadores y no para nombres de etiquetas.

Y aunque h1 te lo aceptase como identificador, este nombre los estás empleando como variable, luego jamás te aceptará como válida la línea h1.style.backgroundColor ="blue" (sea blue, red o cualquier otro color)


No puedes utilizar nombres reservados para poner nombres de variables como "color" o "h1". Como alternativa puedes atribuir a la etiqueta <h1> un identificador con un nombre similar pero nunca igual, por ejemplo id=h11. La línea quedaría entonces:

1
<h1 id=h11>Primera Pagina</h1>

Por otro lado prueba a cambiar el nombre de la variable "color" por otro, qué sé yo, pues por ejemplo "pepe"

1
2
3
4
5
6
7
8
9
var pepe=prompt("Que color deseas para el fondo del h1: azul o rojo?");
 
					if (pepe=="azul"){
 
						h11.style.backgroundColor="blue";}
 
					if (pepe=="rojo"){
 
						h11.style.backgroundColor="red"

El código completo quedaría así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
	<html>
		<head>
			<title>Primera Pagina Web</title>
 
			<script>
				alert("Bienvenido a mi Pagina");
			</script>
		</head>
 
		<body>
 
			<h1 id=h11>Primera Pagina</h1>
 
			<p>Haciendo pruebas con JavaScript</p>
 
 
			<script>
 
 
					var pepe=prompt("Que color deseas para el fondo del h1: azul o rojo?");
 
					if (pepe=="azul"){
 
						h11.style.backgroundColor="blue";}
 
					if (pepe=="rojo"){
 
						h11.style.backgroundColor="red";}
 
 
			</script>
 
		</body>
	</html>

Si utilizas este código te funcionará.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Duda de principiante: no arranca el script

Publicado por joel (895 intervenciones) el 15/05/2020 15:12:24
Hola Israel, el getElementsByTagName() devuelve un array de valores, por lo que para acceder a cualquier de ellos, tienes que hacer referencia al indice... en tu caso tienes que ser:

1
h1[0].style.backgroundColor=...;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Israel
Val: 39
Ha disminuido su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Duda de principiante: no arranca el script

Publicado por Israel (18 intervenciones) el 15/05/2020 15:17:22
Hola Joel,


Interesante esto que comentas. Cuál es el array que genera en este caso? Pues etiquetas <h1> solo hay una en este HTML.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Israel
Val: 39
Ha disminuido su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Duda de principiante: no arranca el script

Publicado por Israel (18 intervenciones) el 16/05/2020 12:13:36
Gracias Joel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar