次の Javascript を検討してください (これはおそらく最適なスタイルではありません)。
var string = "There's an error here";
parent.innerHTML = '<div onclick="foo(\'+string+\')">'+string+'</div>';
一重引用符のため、結果の HTML は有効ではありません。
'<div onclick="foo('There's an error here')">There's an error here</div>'
1 つの解決策は、要素自体innerHTML
を引数として使用することですfoo()
(関数の引数がたまたま要素の内容と同じであるため)。ただし、これは一般的な解決策ではありません。
インライン HTML ソリューションのみを使用してこの問題に対処することは可能ですか? 私の場合、インライン HTML ははるかに大きく、DOM 関数を使用して HTML を作成および追加し、onclick 関数のクロージャーを使用して、より「適切な」形式に簡単に変換することはできません。