一、简介
元素操作通常是指标签的创建、定位、删除和样式定义等。
模板是Extjs中一个非常重要的基础功能,因为需要生成大量的HTML标签,使用模板绝对是不二的最佳选择,能带来非常棒的可读性。
二、Ext.DomHelper 类
Ext.DomHelper 类帮助我们使用javascript 清晰地生成HTML代码,他的使用非常灵活,我们应该找准他的主线,像庖丁解牛一样再慢慢剖开。
任何复杂的东西都有他存在的根基,根基就是精髓、是重心。过于浮躁搞不出什么深度,也容易让人丧失自信,掌握一套适合自己的学习方法非常必要,在学习中不断沉淀,完善自我——不仅仅是搞技术,其实任何事情都一样。只要付出了百分之一百的努力,就算没有成功也不会后悔。
1、insertHtml ( String where, HTMLElement el, String html ):在指定的元素上插件HTML片段。
参数:
where:插到哪里?可选值有:beforeBegin, afterBegin, beforeEnd, afterEnd
el:参照元素
html:插件的内容
示例:在页面上定义如下div:<div id="e">这是一个层</div>
Ext.DomHelper.insertHtml("afterBegin", Ext.get("e").dom, "<div> 中华人民共和国</div>")
在页面上生成的结果如下:
<div id="e"> <div>中华人民共和国</div> 这是一个层 </div>
通过修改第一个参数的值,可以总结出四个可选值的含义:
beforeBegin:插入起始标签之前
afterBegin:插入到起始标签之后,本示例就是这种情况
beforeEnd:插入到结束标签之前
afterEnd:插入到结束标签之后
2、下面的方法都差不多,我们通过一个示例来说明他们的用法。
insertBefore ( */ , Object/String o):新节点插入到指定节点之前;
insertAfter ( */ , Object/String o):新节点插入到指定节点之后;
insertFirst ( */ , Object/String o):新建节点并插入到指定节点作为第一个子节点;
append(*/ , Object/String o):新建节点并插入到指定节点作为最后一个子节点;
overwrite ( */ , Object/String o):替代指定节点内容;
参数:
*/:指定节点,类型可以为String/HTMLElement/Element
o:新节点,可以是dom对象(子孙)或裸HTML标记
示例:
HTML代码如下:
<div id="parent"> <div id="c1">第1 个孩子</div> <div id="c2">第2 个孩子</div> <div id="c3">第3 个孩子</div> <div id="c4">第4 个孩子</div> <div id="c5">第5 个孩子</div> </div>
JS代码如下:
//在c2 之前插入div Ext.DomHelper.insertBefore("c2", "<div>c2-child-2</div>"); //在c2 之后插入div Ext.DomHelper.insertAfter("c2", {tag: "div", html: "c2-child"}); //将一个新节点作为parent的第一个子节点 Ext.DomHelper.insertFirst("parent", "<div>parent-first-child</div>"); //将c3 的内容更新 Ext.DomHelper.overwrite("c3", "There are new contents"); //将一个新节点作为parent的最后一个子节点 Ext.DomHelper.append("parent", {tag: "div", html: "parent-last-child"});
结果:
<div id="parent"> <div>parent-first-child</div> <div id="c1">第1 个孩子</div> <div>c2-child-2</div> <div id="c2">第2 个孩子</div> <div>c2-child</div> <div id="c3">There are new contents</div> <div id="c4">第4 个孩子</div> <div id="c5">第5 个孩子</div> <div>parent-last-child</div> </div>
从例子中可以看出,新建的节点可以指定多种类型:即可以是一段HTML 标记,也可以是一个json对象,对于后者,可以通过cls属性来指定类选择器。
三、Ext.XTemplate类
Templete 是模板之意,就是定义一段HTML 代码,并放置若干个{}作为占位符,运行时将数据填充到{}中去。
XTemplate和DomHelper 有很深的渊源,DomHelper 是XTemplate的小弟,DomHelper解决不了的事情,XTemplate一定可以。
使用XTemplate一般会经历三个步骤:
1、定义XTemplate对象,指定一段HTML代码作为模板;
2、指定XTemplate中定义的HTML应该放置的位置,并填充占位符信息;
3、编译XTemplate。
先看一个简单的例子来说明问题:
Ext.onReady(function(){ var xt = new Ext.XTemplate( "<table border={0} width={1}>", "<tr>", "<td>{2}</td>", "<td>{3}</td>", "<td>{4}</td>", "</tr>", "</table>" ); xt.append("xt", [1, 300, '单元格1', '单元格2', '单元格3']); xt.compile(); })
页面如下:
<div id="xt"></div>
实例化XTemplate时,可以配置任意个参数,会自动连接到一起,这种写法似乎更方便更好读。append 方法同DomHelper 的append 方法,实际上还有insertBefore、insertAfter、insertFirst、overwrite 等方法,不同的是第二个参数,该参数是要填充到占位符中的数据,可以是数组,也可以是json对象。执行完之后得到如下结果:
<div id="xt"> <table border="1" width="300"> <tbody> <tr> <td>单元格1</td> <td>单元格2</td> <td>单元格3</td> </tr> </tbody> </table> </div>
下面是改造后的例子,填充数据时用json对象代替了原来的数组:
Ext.onReady(function(){ var xt = new Ext.XTemplate( "<table border={b} width={w}>", "<tr>", "<td>{v1}</td>", "<td>{v2}</td>", "<td>{v3}</td>", "</tr>", "</table>" ); xt.append("xt", {b: 1, w: 300, v1: "单元格1", v2: "单元格2", v3: "单元格3"}); xt.compile(); });
如果需要请在附件下载API.
相关推荐
《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...
《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...
- **DomHelper类**: 提供了一种简洁的方法来创建和操作DOM元素。 - **XTemplate类**: 用于生成动态HTML模板,支持数据绑定。 #### 7. 格式化功能 Extjs的`Ext.util.Format`类提供了一组内置的格式化函数,用于文本...
4. **元素操作与模板**:Ext.js提供了操作DOM的高级方法,包括通过Ext.DomHelper类和Ext.XTemplate模板引擎来创建和修改页面元素。模板用于数据绑定和动态内容生成。 5. **格式化**:Ext.util.Format类提供了多种...
9. **Ext.DomHelper 类**:用于动态创建和修改DOM元素,提供了一种模板化的创建方式。 10. **Ext.Template 类**:模板引擎,用于动态生成HTML片段。 11. **Ext.EventManager 类**:管理DOM事件,包括事件绑定、...
- **Ext.DomHelper类**: 提供了方便的操作DOM元素的方法。 - **Ext.XTemplate**: 用于动态生成HTML的模板引擎。 5. **格式化** - **Ext.util.Format类**: 提供了一系列字符串格式化的方法,如货币、日期等。 6....
在“EXT核心API详解(三)-Ext.Element.txt”中,你可以了解到如何创建、选择和操作DOM元素,以及如何利用它实现动态效果。 2. **Array, Date, Function, Number, String**:这些是JavaScript的基础数据类型,ExtJS对...
ExtJS通过Ext.DomHelper类提供了对DOM元素的操作能力,通过Ext.XTemplate类支持模板的使用。这使得动态生成HTML片段和绑定数据变得更加简单高效。 ### 第六部分:格式化 ExtJS通过Ext.util.Format类提供了丰富的...
关于ext与dwr整合部分的讨论 C.3. 怎么看文档附件里的范例 C.4. ext开发计划 D. 贡献者列表 D.1. 感谢[飘]的大力支持 D.2. 感谢[吧啦吧啦]的大力支持 D.3. 感谢[游戏人生]的大力支持 D.4. 感谢[綄帥]的大力支持 D.5...
`EXT核心API详解(四)-Ext.DomQuery DomHelper Template.txt`涵盖了查询DOM元素的`Ext.DomQuery`(类似于jQuery的selector),动态创建和操作DOM的`DomHelper`,以及用于数据绑定的`Template`类。这些工具使你能更加...
- **工具**: `Ext.DomHelper` 类提供了创建、操作 DOM 元素的方法。 - **示例**: `Ext.DomHelper.append('divId', '<span>Text</span>')`。 **5.2 模板** - **用途**: 用于动态生成 HTML 内容。 - **实现**: `Ext....
#### 六、元素操作与模板 1. **元素操作简介** - 讨论元素操作在前端开发中的重要性和挑战。 2. **Ext.DomHelper类** - 用于创建、操作DOM元素的方法集合。 3. **Ext.XTemplate** - 一种模板引擎,用于生成动态...
9、Ext.DomHelper类 …………………… 14 10、Ext.Template类 …………………… 14 11、Ext.EventManager类 ……………… 15 12、Ext.EventObject类 ………………… 15 13、Ext.CompositeElement类 ………… 16 14、...