Вам нужно экранировать кавычки, содержащиеся в том же типе кавычек с символом \ symbole.
Пример:
var test = '<tr><td><input type="text" class="demo_class" onchange="myfun(this,\'val\')"></td></tr>';
В противном случае строка, начинающаяся с 'или ", считается завершеннойпервый не экранированный 'или "встреченный.
Кроме того, кавычки, ограничивающие значения атрибутов html, всегда разрешаются как" независимые от того, что вы используете "или" в вашем js, так что вы можете избежать путаницы, всегда разделяя значенияиз ваших атрибутов html символом "как в этом примере.
document.body.innerHTML = '<input type="text" class="demo_class" onchange="myfun(this,\'val\')">';