2.) Schreibe XML-konformen HTML-Code (Element- und Attributbezeichner immer klein, Attributwerte immer in Anführungszeichen) ... dann fällt es nicht nur dem Browser leichter, Deinen Code zu verstehen - sondern auch Dir, Deine Fehler zu finden.
Das Grundproblem ist hier doch, dass HTML-Code in JavaScript eingebettet wird. Dass in diesen HTML-Code wieder JavaScript-Code eingebettet wird, welcher auf Werte des JavaScript-Codes zugreifen soll, der ihn erzeugt hat.
Ob man da korrekten Code mit XML-Syntax schreibt oder nicht, es bleibt eine stetige Quelle der Probleme. Wenn man das sinnvoll lösen will, so wäre das eine Option: HTML-Code möglichst aus dem JS-Code in Templates auslagern (jquery-tmpl, Mustache, Handlebars o.ä.) und sämtliches Event-Handling mit effizientem JavaScript lösen. Dabei helfen auch MVC-Bibliotheken wie Spine und Backbone.
Mathias