ok im new at javascript, but im trying to change the innerhtml of a div tag, heres my script and its not working:
<head>
<script type="text/javascript">
function var1() {
document.getElementById('test').innerHTML = 'hi';
}
window.onLoad = var1();
</script>
</head>
<body>
<div id="test">change</div>
</body>
it should work but for some reason its not, any help?
Rather than assigning var1
to window.onload
, you're currently calling the function and storing its result. Also, this might be obvious, but var1
seems like an odd name for a function. Try this:
function var1() {
document.getElementById('text').innerHTML = 'hi';
}
window.onload = var1;
Note the casing of onload
, as well as the missing parentheses after var1
.
using .innerHTML
is non-standard, and a terrible practice for many reasons. you should create a new element using the proper standard methods and and add it to the tree where you want it
correct:
window.onload = var1;
in your example value of window.onload is undefined
because function var1 returns nothing (undefined
). You should set onload property to function var1, not result of calling function var1()
You're getting an element with an id of "test", but there is no element with that id in your html. There is, however, one called "text".
Your example will work if you change the uppercase "L" to a lowercase "L" in "onLoad" and remove the parenthesis after var1 where you currently have window.onLoad = var1();
Try changing onLoad to onload.
function var1() {
document.getElementById('test').innerHTML = 'hi';
}
window.onload = var1; // onload
Below is another simpler version
<body>
<div id="test">change</div>
<script type="text/javascript">
document.getElementById('test').innerHTML = 'hi';
</script>
</body>