Make .hide() more robust

Prevent it from blowing up when called without markup existing.
setContent should update existing markup