zoukankan      html  css  js  c++  java
  • 【Ext笔记】Ext 4.x 选择器和DOM操作

    最原始的html dom方法:通过id使用getElementById方法定位到某个元素。但是不可能给页面的每个元素都加Id,所以就需要用到选择器对页面元素进行定位和选择。

    Ext的选择器主要有以下几种,要注意区分它们返回的类型:HTMLElement对象  Element对象  CompositeElementLite对象  CompositeElement对象 数组或Document对象 

    1、Ext.query()               返回的是:一个由  HTMLElement对象   组成的数组

    2、Ext.get() 和 Ext.fly()  返回的是:Element对象         Ext.get('MyId').dom.innerHTML= '内容';

                 get方法会在缓存中记录对象,fly方法不记录,所以get适用于多次调用的场合,fly适用于一次性调用的场合,以减少内存消耗。

    3、Ext.getDom()            返回的是: HTMLElement对象   Ext.getDom('MyId').innerHTML= '内容';

    4、Ext.select()               返回的是:HTMLElement对象或者Element对象

                  Ext.select(selector,unique,root)中unique默认为false,表示不创建,返回  CompositeElementLite对象(是HTMLElement对象 ) ;

                  若设置为true, 表示创建,返回   CompositeElement对象(是Element对象)。CompositeElement对象继承自CompositeElementLite对象。

                  为节省内存,提高性能,应多使用 HTMLElement对象 

    5、Ext.getCmp()     平时常用,《ExtJS 权威指南》没写

    -------------------------------------------

    Ext.dom.Element提供了171个方法,非常丰富,所以我们经常query取到DOM Node然后交给get去变成Element

    -------------------------------------------

    Ext.query(QueryStr)中QueryStr的格式:看网上很多分类都有点乱,《ExtJS 权威指南》中分类比较规范,常用的总结如下:

    1、基本选择符 " "

    (1) Ext.query("*") //选择任何无素

    (2)Ext.query("E") //根据标记E选择元素

       Ext.query("span") 

    (3)Ext.query("E F") 

    (4)Ext.query("E>F")

    (5)Ext.query("E+F")

    (6)Ext.query("E~F")

    (7)Ext.query("#ID") //选择id属性值为ID的元素

    (8)Ext.query(".classname")//选择CSS类名为classname的元素

       Ext.query(".check")  Ext.query("td.check")

    2、属性选择符 "[ ]"

    (1)Ext.query("[attribute]")  //选择带有属性attribute的元素

           Ext.query("E[attribute]") //E为元素标记

           Ext.query("input[id]")

     (2)  Ext.query("[attribute=value]")  //选择attribute的属性值为value的元素

       Ext.query("E[attribute=value]")   

       Ext.query("input[name=articleId]")

    (3)  Ext.query("[attribute^=value]")  //选择attribute的属性值以value开头的元素

      Ext.query("E[attribute^=value]")  

    (4)  Ext.query("[attribute$=value]")  //选择attribute的属性值以value结尾的元素

      Ext.query("E[attribute$=value]")  

    (5)  Ext.query("[attribute*=value]")  //选择attribute的属性值包含value的元素

       Ext.query("E[attribute*=value]")   //E为元素标记

    (6)  Ext.query("[attribute%=value]")  //选择attribute的属性值能整除value的元素

       Ext.query("E[attribute%=value]")   //E为元素标记

    (7)  Ext.query("[attribute!=value]")  //选择attribute的属性值不等于value的元素

       Ext.query("E[attribute!=value]")   //E为元素标记

    3、CSS属性选择符

    同"2、属性选择符"的语法,不同的地方在使用大括号{}代替属性选择符中的中括号[]。

    同时要注意:注意padding、background等可以合并定义的CSS属性,查询时必须拆分成单一的属性,如padding-left,否则查询结果为空。

    Ext.query("td{text-align=center}")

    Ext.query("td{padding-left$=30px}")

    4、伪类选择符 E:X

    (1)E:first-child

    (2) E:last-child

    (3)E:nth-child(n)

    (4)E:nth-child(odd) 或 E:odd //选择标记为E,且其为父结点的奇数子节点的元素

    (5)E:nth-child(even) 或 E:even

    (6)E:only-child

    (7)E:checked

    (8)E:first  //标记为E的元素集合中的第一个元素

    (9)E:last

    (10)E:nth(n)

    (11)...后面的不常用

  • 相关阅读:
    markdown grammar
    vs the address of offline package
    步步为营-66-Socket通信
    步步为营-65-线程小例子
    线程使用中常见的错误-“System.InvalidOperationException”线程间操作无效: 从不是创建控件“ ”的线程访问它。
    步步为营-64-进程&线程
    步步为营-63-Asp.net-get与post
    步步为营-62-Excel的导入和导出
    步步为营-61-拼音组件
    步步为营-60-代码生成器
  • 原文地址:https://www.cnblogs.com/guozhiguoli/p/3328564.html
Copyright © 2011-2022 走看看