Reputation: 987
I'm trying to display elements of a JavaScript array. Code:
var name = ["one" , "two"];
window.onload = function(){
document.getElementById('MinamaisVards').innerHTML=name[1];
}
Can anyone tell me why does it display the letter "n" instead of the second element of array? I don't understand where the problem is.
Upvotes: 5
Views: 7332
Reputation: 2136
The problem is in var name
as its a reserved word, use names
instead.
var name = ["one" , "two"];
window.onload = function(){
document.getElementById('MinamaisVards').innerHTML=name[1];
}
should be
var names = ["one" , "two"];
window.onload = function(){
document.getElementById('MinamaisVards').innerHTML=names[1];
}
Upvotes: 3
Reputation: 318182
There already is a global with the name name
, it's window.name
, and it only accepts strings, so when you do
var name = ["one" , "two"];
in the global scope, and you get it back
console.log( name );
you get
"one, two"
and it's of type string, so name[1]
is "n"
, the second character in that string.
This is because what you're really setting and getting is window.name
, and it does not accept an array, so it runs toString()
on whatever you pass it.
Change the variable name to something that isn't already in use
Upvotes: 14