¿Por qué el valor dentro del bucle y el uso de la [i] no está definido?
-
22-09-2019 - |
Pregunta
usando Mozilla Jetpack, cuando hago el siguiente código .. entiendo que la vinculación no está definida !!! por qué ? o cómo solucionarlo?
var links = doc.querySelectorAll('#courses_menu > ul > li > a');
var linkz=links[1].href.split("?");
var i = 0;
for (i=0;i<=4;i++)
{
var linking= links[i];
}
jetpack.notifications.show(" "+ linking);
Solución
Debido a que se sale del ámbito cuando los extremos de bucle.
Por lo que debe tener
var linking;
for (i=0;i<=4;i++)
{
linking= links[i];
}
Pero, además, ¿qué estás tratando de hacer aquí? Sobrescribe la vinculación de cuatro veces. ¿Quieres mostrar todos los enlaces? Si es así, puede concatenar ellos como:
var linking = "";
for (i=0;i<=4;i++)
{
linking = linking + links[i] + " ";
}
Editar: los comentaristas tienen razón; Me he olvidado que no hay ningún bloque de alcance en Javascript. ¿Esto soluciona el código? No me puedo imaginar que lo hizo. La única otra cosa que puedo pensar es que links[4]
no está definido, y luego se asigna a undefined
linking
.
De todos modos, no puedo eliminar este porque ha sido aceptada, pero si alguien se le ocurre una respuesta sea más útil, no dude en inaceptables desde éste.