Is there a way to refer to a Javascript variable with a string that contains its name?
example:
var myText = 'hello world!';
var someString = 'myText';
//how to output myText value using someString?
Is there a way to refer to a Javascript variable with a string that contains its name?
example:
var myText = 'hello world!';
var someString = 'myText';
//how to output myText value using someString?
You can do this with eval
:
var myText = 'hello world!';
var someString = 'myText';
eval('var theTextInMyText = ' + someString + ';');
alert(theTextInMyText);
The desire to do this at all usually is a "code smell". Perhaps there is a more elegant way...
You can use an eval
to do it, though I try to avoid that sort of thing at all costs.
alert(eval(someString));
A better way, if you find yourself needing to do this, is to use a hash table.
var stuff = { myText: 'hello world!' };
var someString = 'myText';
alert( stuff[someString] );
eval
will do that:
var myText = 'hello world!!';
var someString = eval('myText');
document.getElementById('hello').innerHTML = someString;
If that variable is on the global scope, you can use the bracket notation on the global object:
var myText = 'hello world!';
var someString = 'myText';
alert(window[someString]);
Assuming this is at the top level, window[someString] === "hello world!"
.