Work with all possible IDs

Not just the ones that can incidentally be parsed by jQuery's selector parser without escaping.

It's very surprising to get errors or experience failure when using a perfectly valid ID such as "foo/bar.baz" just because jQuery's selector parser gets confused by them.  Instead of building a string for jQuery to parse and then call getElementById() on, this patch switches to using getElementById() directly, allowing any valid ID to be used.