`

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 :

var dh = Ext.DomHelper; // create shorthand alias  
// specification object  
var spec = {  
    id: 'my-ul',  
    tag: 'ul',  
    cls: 'my-list',  
    // append children after creating  
    children: [     // may also specify 'cn' instead of 'children'  
        {tag: 'li', id: 'item0', html: 'List Item 0'},  
        {tag: 'li', id: 'item1', html: 'List Item 1'},  
        {tag: 'li', id: 'item2', html: 'List Item 2'}  
    ]  
};  
var list = dh.append(  
    'my-div', // the context element 'my-div' can either be the id or the actual node  
    spec      // the specification object  

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


原来的页面html 代码:

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

运行上述代码之后:

 

 


示例2 :模板方法

       1. 用规定的格式创建模板方法,用顺序号代替参数

// 创建一个ul ,添加到id 为my-div 的div里  
 var list = dh.append('my-div', {tag: 'ul', cls: my-list'});  
// 创建一个生成 li 的模板  
var tpl = dh.createTemplate({tag: 'li', id: 'item{0}',html: 'List Item {0}'});  
for(var i = 0; i < 5; i++){  
    tpl.append(list, [i]); // 利用前面创建的模板生成li 结点  

// 创建一个ul ,添加到id 为my-div 的div里
 var list = dh.append('my-div', {tag: 'ul', cls: my-list'});
// 创建一个生成 li 的模板
var tpl = dh.createTemplate({tag: 'li', id: 'item{0}',html: 'List Item {0}'});
for(var i = 0; i < 5; i++){
    tpl.append(list, [i]); // 利用前面创建的模板生成li 结点
}

原来的html 代码:

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

运行上述代码之后:

 

  2.用字符串的形式创建模板方法, 用顺序号代替参数

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

原来的html 代码:

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

运行上述代码之后:

 

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

   以下代码和 2 中代码运行的效果是一样的。

   var html = '<a id="{id}" href="{url}" mce_href="{url}" class="nav">{text}</a>';//创建超链接字符串  
            var tpl = new Ext.DomHelper.createTemplate(html);//创建模板  
            //向模板中插入参数,创建超链接,并加入到id 为 blog-roll 的div 中  
            tpl.append('blog-roll', {  
                id: 'link1',  
                url: 'http://www.jackslocum.com/',  
                text: "Jack's Site" 
            });  
            tpl.append('blog-roll', {  
                id: 'link2',  
                url: 'http://www.dustindiaz.com/',  
                text: "Dustin's Site" 
            }); 
var html = '<a id="{id}" href="{url}" mce_href="{url}" class="nav">{text}</a>';//创建超链接字符串
            var tpl = new Ext.DomHelper.createTemplate(html);//创建模板
            //向模板中插入参数,创建超链接,并加入到id 为 blog-roll 的div 中
            tpl.append('blog-roll', {
                id: 'link1',
                url: 'http://www.jackslocum.com/',
                text: "Jack's Site"
            });
            tpl.append('blog-roll', {
                id: 'link2',
                url: 'http://www.dustindiaz.com/',
                text: "Dustin's Site"
            });

示例3:其他方法

    1. insertHtml

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

      上述代码运行效果


      


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

    上述代码运行效果:

     

     var dh = Ext.DomHelper;  
       //id为 blog-roll 插入到第一个子节点位置  
       dh.insertHtml('AfterBegin',Ext.getDom("blog-roll"),'<a id="AfterBegin">www.csdn.net</a>'); 
var dh = Ext.DomHelper;
       //id为 blog-roll 插入到第一个子节点位置
       dh.insertHtml('AfterBegin',Ext.getDom("blog-roll"),'<a id="AfterBegin">www.csdn.net</a>');


     上述代码运行效果:

     

     var dh = Ext.DomHelper;  
       //id为 blog-roll 插入到最后一个子节点位置  
       dh.insertHtml('BeforeEnd',Ext.getDom("blog-roll"),'<a id="BeforeEnd">www.csdn.net</a>'); 
var dh = Ext.DomHelper;
       //id为 blog-roll 插入到最后一个子节点位置
       dh.insertHtml('BeforeEnd',Ext.getDom("blog-roll"),'<a id="BeforeEnd">www.csdn.net</a>');

     上述代码运行效果:

     

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lijingronghcit/archive/2010/09/01/5854480.aspx

分享到:
评论

相关推荐

    extJs 2.1学习笔记

    目录 1. ExtJs 结构树 2 2. 对ExtJs的态度 3 3. Ext.form概述 4 4. Ext.TabPanel篇 5 5. Function扩展篇 7 6. Ext.data.Store篇 10 ...27. extJs 2.0学习笔记(DomHelper.js篇) 76 28. extJs 2.0学习笔记(ext.js篇) 77

    extjs-Ext.ux.form.LovCombo下拉框

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...

    ExtJs 学习笔记 Ext.Panle Ext.TabPanel Ext.Viewport第1/3页

    通过本篇学习笔记,我们可以了解到如何使用ExtJs的面板控件,并通过一些简单的例子来展示它们的基本用法。这些基础知识是构建复杂ExtJs应用程序的基石。学习和掌握Ext.Panel、Ext.TabPanel和Ext.Viewport的使用方法...

    ExtJS 4.0 改善Ext.grid.plugin.RowEditing (重构,v1.4版本,2011-09-11)

    总的来说,ExtJS 4.0中对RowEditing插件的重构旨在提供更高效、易用且可靠的表格数据编辑功能,同时通过源码分析和文档学习,开发者可以更好地利用这个插件来提升其应用程序的用户体验。尽管具体的改进内容需要通过...

    extjs4的Ext.frorm.Panel控件属性说明和表单控件说明

    主要用例子说明extjs4的form表单的运用,其中有表单属性说明,表单控件运用说明如: title:'表单', //表单标题 bodyStyle:'padding:5 5 5 5', //表单边距 height:120, //表单高度 width:200, //表单宽度 ...

    ExtJS学习笔记.doc

    ExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.doc

    ExtJs的Ext.Ajax.request实现waitMsg等待提示效果

    ExtJs提供了Ext.Ajax.request方法来进行Ajax请求,但默认情况下,该方法不支持waitMsg属性,不像fp.form.submit方法提供了waitTitle和waitMsg属性来实现等待提示。为了解决这一限制,我们可以采用Ext.MessageBox的...

    ExtJS ToolTip功能

    ### ExtJS ToolTip功能 #### 知识点详解 在ExtJS中,`ToolTip`功能是一种非常实用且灵活的功能,它允许用户在鼠标悬停在某个元素上时显示额外的信息。这种特性对于提高用户界面的可用性和用户体验尤其有用。本文将...

    extjs4.1-ux.rar

    Extjs4.1多个扩展 1、Ext.ux.aceeditor.Panel 2、Ext.ux.grid.feature.Tileview 3、Ext.ux.upload.Button 4、Ext.ux.toggleslide.ToggleSlide 5、Ext.ux.container.ButtonSegment 6、Ext.ux.grid.plugin.RowEditing ...

    EXTJS3 Ext.PagingToolbar() 快捷键应用

    在EXTJS3中,`Ext.PagingToolbar()` 是一个非常重要的组件,用于在大量数据的网格或视图中实现分页功能。这个组件允许用户轻松地浏览和操作大量的记录,而不需要一次性加载所有数据,从而提高了应用程序的性能和用户...

    ExtJs3.3中文API.CHM_extjs3.3中文文档_

    ExtJS是一个广泛使用的JavaScript库,...通过深入学习和理解这些内容,开发者能够熟练掌握ExtJS 3.3,编写出高效、高质量的Web应用。同时,文档中的示例代码也有助于开发者快速上手实践,将理论知识转化为实际技能。

    Ext.Ajax.request2.x实现同步请求

    在EXTJS库中,`Ext.Ajax.request`是用于发送Ajax请求的核心方法,它支持异步和同步操作。本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,...

    ExtJS 3.4.0中的 ext.jsb2 文件

    在3.4.0版本中,`ext.jsb2` 文件是一个关键组成部分,它对于理解和开发基于ExtJS的应用程序至关重要。这个文件的缺失可能会对升级到4.0.0版本的开发者造成困扰,因为4.0.0版本不再包含这个文件,但幸运的是,它可以...

    Extjs4.X下comboboxTree下拉树型菜单,完美支持多选、单选,绝对好用

    在ExtJS 4.x框架中,ComboboxTree是一种特殊的组件,它将传统的下拉框与树形结构结合在一起,提供了一种更为灵活的用户输入方式。这种组件在数据选择上非常实用,尤其当数据层级关系复杂时,可以方便地进行多选或...

    ExtJS Ext.MessageBox.alert&#40;&#41;弹出对话框详解

    代码如下: Ext.onReady(function() { Ext.Msg.alert&#40;‘提示’, ‘逗号分隔参数列表’&#41;; //这种方式非常常见的 }); 效果图: 代码如下: Ext.onReady(function() { //定义 JSON(配置对象) var config = { ...

    Ext.get与Ext.fly 的区别

    在EXTJS这个强大的JavaScript框架中,`Ext.get`和`Ext.fly`是两个非常重要的方法,它们都用于操作DOM元素,但它们之间存在着微妙的差异。了解这些差异对于优化代码性能和理解EXTJS的工作机制至关重要。 首先,`Ext....

    Ext.ux.UploadDialog.zip

    开发者可以通过EXT的API文档学习如何配置和使用UploadDialog,包括添加按钮、监听事件、设置参数等。对于初次接触EXTjs UploadDialog的开发者来说,理解EXT的组件体系结构、事件模型和配置选项是非常重要的。 通过...

    ExtJs选中var editor = new Ext.ux.grid.RowEditor详解

    ### ExtJs选中 `var editor = new Ext.ux.grid.RowEditor` 详解 在Web开发领域,特别是使用ExtJs框架进行复杂用户界面构建时,`RowEditor` 是一个非常实用的功能,它允许用户直接在表格行内编辑数据,极大地提高了...

Global site tag (gtag.js) - Google Analytics