Element Builderということで、ebi.jsというのを書きました。
下記のようなHTMLを
<div id="target" style="border: 1px solid black;"> text1 <span style="color: red; font-weight: bold;">red</span> text2 <p>button<input type="button" class="class1" value="click"></p> </div>
JavaScriptで下記のように書けます。
Ebi.createElement('#target') .style('border', 'solid 1px black') .append('text1') .start('span') .append('red') .style({ color: 'red', fontWeight: 'bold' }) .end() .append('text2') .start('p') .append('button') .start('input') .property('className', 'class1') .property({ type: 'button', value: 'click' }) .event( 'click', function() { alert(1) } ) .end() .end();
FirefoxのアドオンレビューでinnerHTMLはセキュリティ上避けるべきと指摘されて、そのままDOMのAPI使って書いていたら、面倒なコードになってしまったので、メソッドチェーンで書けるようなものということで書きました。
詳しい使い方は、また別途。
(とりあえず、今年に間に合わせたかったので、先にあげておきます…)