• ExtJS DOM操作-查询(DOM Query)


    更新记录
    2022年7月20日 发布。
    2022年7月6日 从笔记迁移到博客。

    ExtJS教程汇总:https://www.cnblogs.com/cqpanda/p/16328016.html

    DOM操作-查询(DOM Query)

    说明

    DOM常用查询方法:get、query、select、fly

    查询单个DOM元素-Ext.get()

    Ext.get(id /HTML DOM) : Ext.dom.Element

    说明:通过DOM元素的id属性,获得DOM元素
    返回值:返回Ext.dom.Element类的实例
    注意:Ext.get方法是Ext.dom.Element.get方法的快捷方法
    注意:这是用来查询DOM的,不是查询组件的
    注意:参数的id字符串不需要使用#开头
    实例:

    1. "text" id="txtFirstName" />
    2. // 获得DOM元素Ext.dom.Element object
    3. var txtFirst = Ext.get("txtFirstName");
    4. // 设置HTML属性
    5. txtFirst.set({ 'value': 'Steve' });

    查询单个DOM元素-Ext.fly()

    Ext.fly (dom, [named] ) : Ext.dom.Element

    说明:执行类似Ext.get()方法的功能,都是获得DOM元素
    被设计成将DOM元素作为单个语句进行操作,并且不在内存中存储引用
    而Ext.get存储DOM元素的引用,可以在其他地方继续使用
    注意:第一个参数是dom元素或者dom元素的id
    注意:如果没有匹配到dom元素则会,返回null
    注意:Ext.fly()是Ext.dom.Element.fly()的快捷别名方法

    实例:

    1. "text" id="txtLastName" />
    2. // 获得DOM元素 并 设置HTML属性
    3. Ext.fly('txtLastName').set({ 'value': 'Jobs' });

    查询单个DOM元素-Ext.getDom (el )

    Ext.getDom ( el ) : HTMLElement

    注意:参数el可以是String/HTMLElement/Ext.dom.Element类型
    说明:可以通过该函数实现将ExtJS DOM转为HTML DOM
    实例:
    //通过dom的id属性获得元素

    1. var elDom = Ext.getDom('elId');
    2. //通过dom节点获得dom节点
    3. var elDom1 = Ext.getDom(elDom);

    查询多个DOM元素-Ext.select()

    Ext.select ( selector, composite ) : Ext.dom.CompositeElementLite/Ext.dom.CompositeElement

    说明:通过CSS选择器、XPath查询方法(CSS/XPath selector)获得多个DOM元素
    返回一个Ext.dom.CompositeElement类 或 Ext.dom.CompositeElementLite类 的实例
    注意:返回类型是一个集合类型,可以进行遍历操作
    注意:CompositeElement具有过滤、迭代和执行集合操作的方法
    注意:Ext.Select()方法是Ext.dom.Element.select()方法的快捷别名方法
    注意:这个方法和Ext.query方法类似,但是返回的类型不同

    实例:
    简单使用

    var pandaSelect = Ext.select('#id1');

    使用复杂的CSS选择器

    Ext.select('div.row[title=bar]:first')

    选中元素并设置宽度

    Ext.select('div.row').setWidth(100);

    选中多个元素

    Ext.select('div.row, span.title');

    设置搜索的根起点

    Ext.select('div.row', true, 'myEl');

    或者

    Ext.get('myEl').select('div.row');

    查询多个DOM元素-Ext.query()

    说明:通过CSS选择器(CSS selector)语法选择多个DOM元素
    Ext.query ( selector, [asDom] ) : HTMLElement[]/Ext.dom.Element[]
    返回值: 返回一个数组(HTMLElement[]/Ext.dom.Element[])
    如果没有查找到元素则返回空数组
    注意:返回的是非ExtJS封装的DOM元素
    注意:这里是CSS选择器,而不是ExtJS类似CSS语法
    注意:还可以指定查询的DOM根节点
    注意:Ext.query()方法是Ext.dom.Element.query()方法的快捷别名方法

    实例:
    使用简单的CSS选择器

    1. class="panda1">1
    2. <div class="panda1">2div>
    3. <div class="panda1">3div>
    4. var panda = Ext.query('.panda1');
    5. console.log(panda);

    设置查找的根节点(root)

    1. //创建组件
    2. var btn = Ext.create('Ext.button.Button',{
    3. text: 'PandaButton',
    4. renderTo: Ext.getBody()
    5. });
    6. //获得组件的DOM元素
    7. var dom = btn.getEl().dom;
    8. var queryResult = Ext.query('span.x-btn-inner',dom);

    DOM操作-删除

    移除DOM节点- Ext.removeNode()

    Ext.removeNode ( node )

    Ext.dom.Helper

    说明:Ext.dom.Helper类用于创建DOM元素
    使用特定的HTML属性,比如tag、子元素、class等创建DOM元素

    以下是支持的属性:
    属性 描述
    Tag HTML tag of the element to create
    Children or cn an array of the same type of element definition of tags
    Cls The class attribute of an element
    Html innerHTML value of the element
    Id The id of the element

    实例:

    1. Ext.dom.Helper.append('div1',{
    2. id: 'PandaId1',
    3. cls: 'PandaClass',
    4. html: '

      PandaH1

      '
    5. });

    Ext.dom.Query()

    支持 CSS选择器 和 XPath查询语法
    返回类型:Ext.CompositeElementLite集合
    注意:Ext.dom.Query是一个单例类型,不需要实例化

    实例:

    Ext.dom.Query.select('#main .menu ul li');

    Ext.getElementById()

    Ext.DomHelper

    实例:创建DOM元素

    1. var h1 = Ext.DomHelper.createDom({
    2. tag: "h1",
    3. html: "This is the title!"
    4. });
    5. Ext.getBody().appendChild(h1);

    实例:创建DOM元素,并添加到body中

    1. Ext.DomHelper.append(Ext.getBody(),{
    2. tag: "div",
    3. style: {
    4. width: "100px",
    5. height: "100px",
    6. border: "2px solid #333",
    7. margin : "20px auto"
    8. }
    9. });

    实例:创建多层级的DOM元素,添加到body中

    1. Ext.DomHelper.append(Ext.getBody(),{
    2. tag: "div",
    3. style: {
    4. width: "100px",
    5. height: "100px",
    6. border: "2px solid #333",
    7. margin : "20px auto"
    8. },
    9. children : [{
    10. tag : "ul",
    11. children : [
    12. {tag: "li", html: "Item 1"},
    13. {tag: "li", html: "Item 2"}
    14. ]
    15. }]
    16. });
  • 相关阅读:
    6.DesignForPlacement\1.BoardToBoardReuse
    SpringBoot-将Bean放入容器的五种方式
    单调栈专题
    基于SSM的酒店客房管理系统设计与实现
    PTA 7-82 三个整数排序
    26个开发者常用必备网站汇总推荐
    Meta分析如何下笔?掌握这些干货就够了
    JSP基础语法和指令(二)
    PMP 证书
    Go语言基准测试(benchmark)三部曲之三:提高篇
  • 原文地址:https://blog.csdn.net/weixin_38304160/article/details/125886236