innerHTML
evaluates to a string. I’m not sure why you would expect anything different. Consider this:
var a="foo"; // now a="foo"
var b = a; // now a="foo", b = 'foo'
b = 'bar'; // now a="foo", b = 'bar'
Re-assigning b
doesn’t change a
.
Edited to add: In case it’s not clear from the above, if you want to change innerHTML
, you can just assign to it directly:
document.getElementById("my_div").innerHTML = "Hello";
You don’t need, and can’t use, an intermediary variable.