I just spent a long time figuring out that I shouldn't use clear() as the name of a function in Javascript:
<head>
<script type=text/javascript src=Array.js></script>
</head>
<body>
Hello!!!!<br>
<button type=button onClick=clear() id=ppp>Shoo!</button><br>
<button type=button onClick=add() id=add>Add a few elements</button><br>
<button type=button onClick=check() id=check>Check the array</button><br>
<p id=results>Results will appear here.</p>
<script type=text/javascript>
initialize();
</script>
</body>
Here's Array.js:
var results;
function initialize(){
results = document.getElementById(results);
}
function add() {
results.firstChild.data=add;
}
function clear() {
results.firstChild.data = Hello?;
}
function check() {
results.firstChild.data = check;
}
Symptoms: Clicking the 'add' and 'check' buttons gives me the result I expect, but clicking the 'clear' button does nothing.
If I rename clear() to clearxyz(), it works fine.
My questions:
- Is clear a reserved word? I don't see it on the list:
https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words - Is there a debugging trick I should be using to figure this kind of
thing out in the future? It took me a long time (I'm a noob!) to
figure out that the name of the function was my problem.
Many thanks.
Edit: I'm using Firefox 6.0, and I added a line break to show where Array.js starts.