Hacker News new | past | comments | ask | show | jobs | submit login

This explanation makes sense, but I can't reproduce the behavior.

in IE ... all elements with IDs are already in the global scope

This I can confirm. If the page contains this:

  <div id="bob">Hi</div>
then the following evaluates to true in IE:

  bob == $("bob")
...without defining the variable. I didn't know that - thanks!

The issue comes when you do something more like this.

  <script> var bob = "hello world"; </script> <div id="bob">Hi</div>
now bob doesn't equal "hello world". Your global has been clobbered.

One might expect this, given the above, but I tried it in both IE6 and IE7 and the global keeps the value it had before.




OK It's been a while. It may only happen when you start modifying the dom, or using innerHTML.

End of the day though it's a bad idea and at some point you'll clobber variables you didn't want to.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: