H2Databaseを追っかけていたりしたブログ

H2 database のリリースノートを読んだりとか。

Dojoのモジュールについて 2 dojo/dom

dojo/dom

dojo/domはコアとなるDOM APIを定義しています。定義されているのはbyId/isDescendant/setSelectableの3つの関数です。byIdはよく使うと思いますが、あとの二つはそれほどでも、という感じです。

サンプル。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tutorial: Hello Dojo!</title>
  </head>
  <body>
    <div id="a1">
      <div id="b1">
        <span id="c1">this is C1.</span>
      </div>
      <div id="b2">
        <span id="c2">this is C2.</span>
      </div>
    </div>
    <script src="dojo/dojo.js"
      data-dojo-config="async: true"></script>
    <script>
      require(['dojo/dom','dojo/domReady!'], function(dom){
        var c1 = dom.byId('c1');
        console.log(c1);
        console.log(dom.isDescendant('c1','b2'));
        console.log(dom.isDescendant('c1','b1'));
        dom.setSelectable('c1',true);
        dom.setSelectable('c2',false);
      });
    </script>
  </body>
</html>
dom.byId

引数説明
string/domNode取得したいdomNodeのId。domNodeを渡した場合は、そのdomNodeが返ってきます
document(オプション)探すdocument

dom.byIdはdomNodeをIdで取得します。getElementByIdよりも短いですし、当然ですがどのブラウザでも同じように動きます。第一引数にdomNodeを渡すと、そのままそのdomNodeが返ってきます。

第二引数は、オプションで、どのdocument下で探すかの指定です。デフォルトでは、dojo.docに設定されているdocumentになるようです。明示的に別のdocumentを使いたい時設定します。

dom.isDescendant

引数説明
string/domNode子孫となるdomNodeのIdもしくはdomNode
string/domNode先祖と思われるdomNodeのIdもしくはdomNode

あるdomNodeが、あるdomNodeの子孫であるか判定します。

dom.setSelectable

引数説明
string/domNode対象のdomNodeのIdもしくはdomNode
boolean選択可能とするか

あるdomNodeを選択可能にするかしないか。