今日も上記のClosure-library本を読み進めているのですが、
少し、DOM操作のコードを動かしてみたので、
DOM操作についてのメモを残しておきたいと思います。
まず、base.jsとdeps.jsを取り込むコードを入れておきます。
<link rel="stylesheet" href="closure-library/closure/goog/css/common.css" /> <link rel="stylesheet" href="closure-library/closure/goog/css/hsvpalette.css" /> <script src="closure-library/closure/goog/base.js"></script> <script src="deps.js"></script>
で、最初にDOMのモジュールを読み込みます。
<script>
// DOMの追加モジュールの読み込み
goog.require('goog.dom');
goog.require('goog.dom.DomHelper');
</script>
次に実際にDOMの追加です。
<script>
// iframeをbodyに追加する。
var iframe = goog.dom.createDom('IFRAME', {'src': 'about:blank'});
goog.dom.appendChild(document.body, iframe);
var fdoc = goog.dom.getFrameContentDocument(iframe);
var helper = goog.dom.getDomHelper(ifdoc);
// iframeの中にdivとspanを追加
var node = helper.createDom(
'DIV', null,
helper.createDom('SPAN', { 'style': 'color: red;' }, 'Hello '),
helper.createDom('SPAN', { 'style': 'color: blue;'}, 'World!'));
helper.appendChild(ifdoc.body, node);
</script>
ソースコードを見ていただくと分かりますが、 bodyにiframeを追加して、iframeの中にHello World!が追加されます。 createDom()が要素の生成で、appendChild()が要素の追加。 getDomHelper()でhelperを取得して、helperを通じて、 要素の子要素を追加するという感じになっています。
CSSセレクタを使った要素の取得もできるようなのですが、
どうやら、closure-libraryと違うライセンスが適用されるようで、
商用利用の場合は、気をつけたほうが良いようです。
使い方は、こんな感じだそうです。
var hoge = goog.dom.query('#list > li:nth-child(hoge)');
0 件のコメント:
コメントを投稿