ExtJs 學習筆記 Ext.DomHelper 學習

類說明: DomHelper 這個類對普通的DOM 或者HTML 片段封裝了一些常用的方法,特別創建HTML fragment templates


DomHelper 規定的對象格式: 這個對象格式用來創建DOM 元素,對象的屬性相當於普通DOM 元素的屬性,如下所示:

  • tag : 要創建的元素名稱
  • children : 或者是 cn ,此層的孩子結點,孩子的數據格式和上層是一樣的
  • cls : 定義元素的class 屬性
  • html : 此元素的innerHTML

此類的定義的方法:

  • append :
  • insertBefore :
  • insertAfter :
  • overwrite :
  • createTemplate :
  • insertHtml :

示例1 :

  1. var dh = Ext.DomHelper; // create shorthand alias  
  2. // specification object  
  3. var spec = {  
  4.     id: 'my-ul',  
  5.     tag: 'ul',  
  6.     cls: 'my-list',  
  7.     // append children after creating  
  8.     children: [     // may also specify 'cn' instead of 'children'  
  9.         {tag: 'li', id: 'item0', html: 'List Item 0'},  
  10.         {tag: 'li', id: 'item1', html: 'List Item 1'},  
  11.         {tag: 'li', id: 'item2', html: 'List Item 2'}  
  12.     ]  
  13. };  
  14. var list = dh.append(  
  15.     'my-div', // the context element 'my-div' can either be the id or the actual node  
  16.     spec      // the specification object  
  17. )  

原來的頁面html 代碼:

  1. <div id="my-div"></div>  

運行上述代碼之後:

 

 


示例2 :模板方法

       1. 用規定的格式創建模板方法,用順序號代替參數

  1. // 創建一個ul ,添加到id 爲my-div 的div裏  
  2.  var list = dh.append('my-div', {tag: 'ul', cls: my-list'});  
  3. // 創建一個生成 li 的模板  
  4. var tpl = dh.createTemplate({tag: 'li', id: 'item{0}',html: 'List Item {0}'});  
  5. for(var i = 0; i < 5; i++){  
  6.     tpl.append(list, [i]); // 利用前面創建的模板生成li 結點  
  7. }  

原來的html 代碼:

  1. <div id="my-div"></div>  

運行上述代碼之後:

  2.用字符串的形式創建模板方法, 用順序號代替參數

  1. var html = '<a id="{0}" href="{1}" mce_href="{1}" class="nav">{2}</a>';//創建超鏈接字符串  
  2.             var tpl = new Ext.DomHelper.createTemplate(html);//創建模板  
  3.             //向模板中插入參數,創建超鏈接,並加入到id 爲 blog-roll 的div 中  
  4.             tpl.append('blog-roll', ['link1', 'http://www.jackslocum.com/', "Jack's Site"]);  
  5.             tpl.append('blog-roll', ['link2', 'http://www.dustindiaz.com/', "Dustin's Site"]);  

原來的html 代碼:

  1. <div id="blog-roll"></div>  

運行上述代碼之後:

3.用字符串的形式創建模板方法,   指定 key

   以下代碼和 2 中代碼運行的效果是一樣的。

  

  1. var html = '<a id="{id}" href="{url}" mce_href="{url}" class="nav">{text}</a>';//創建超鏈接字符串  
  2.             var tpl = new Ext.DomHelper.createTemplate(html);//創建模板  
  3.             //向模板中插入參數,創建超鏈接,並加入到id 爲 blog-roll 的div 中  
  4.             tpl.append('blog-roll', {  
  5.                 id: 'link1',  
  6.                 url: 'http://www.jackslocum.com/',  
  7.                 text: "Jack's Site"  
  8.             });  
  9.             tpl.append('blog-roll', {  
  10.                 id: 'link2',  
  11.                 url: 'http://www.dustindiaz.com/',  
  12.                 text: "Dustin's Site"  
  13.             });  

示例3:其他方法

    1. insertHtml

     

  1. var dh = Ext.DomHelper;   
  2.        dh.insertHtml('beforeBegin',Ext.getDom("blog-roll"),'<a id="beforeBegin">www.csdn.net</a>');  

      上述代碼運行效果

       

   

  1. var dh = Ext.DomHelper;   
  2.        dh.insertHtml('AfterEnd',Ext.getDom("blog-roll"),'<a id="beforeBegin">www.csdn.net</a>');  

    上述代碼運行效果:

     

 

    

  1. var dh = Ext.DomHelper;  
  2.        //id爲 blog-roll 插入到第一個子節點位置  
  3.        dh.insertHtml('AfterBegin',Ext.getDom("blog-roll"),'<a id="AfterBegin">www.csdn.net</a>');  

     上述代碼運行效果:

     

    

  1. var dh = Ext.DomHelper;  
  2.        //id爲 blog-roll 插入到最後一個子節點位置  
  3.        dh.insertHtml('BeforeEnd',Ext.getDom("blog-roll"),'<a id="BeforeEnd">www.csdn.net</a>');  

     上述代碼運行效果:

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章