zoukankan      html  css  js  c++  java
  • Extjs学习笔记--(六,选择器)

    文档对象dom是javascript与页面元素的桥梁

    选择器的作用就是通过元素的标签名,属性名,css属性名对页面进行快速,准确的定位及选择

    Extjs的选择器:Ext.DomQuery

    Ext.query(path[,root,type])

    path:查询要使用的选择符,或xpath

    root:查询开始的节点或节点id。如果不设置,默认为document对象,为了提高速度,不要使用document开始查询

    type:查询的类型,值可以为select和simple,当值为simple时使用id或标签属性值等座简单的查询

    demo:

      var el=Ext.get(rootId); //rootId为节点id

      el.query(path);

    Ext.get
    Ext.get()可接收这几种类型的参数,如HTMLElement,Ext.Element、字符型,
    返回的新实例。以下三种类型如下例:
    var el1 = Ext.get('elId'); // 接收元素id
    var el2 = Ext.get(el1); // 接受Ext.Element
    var el3 = Ext.get(el1.dom); //接受HTMLElement
    
    
    Ext.fly
    Ext.fly在参数方面与Ext.get的完全相同,但其内置控制返回Ext.Element
    的方法就完全不同,Ext.fly从不保存享元对象的引用,每次调用方法都返回
    独立的享元对象。其实区别在于“缓存”中,因为缓存的缘故,Ext.get需要
    为每个元素保存其引用,就形成了缓存,如果有相同的调用就返回,但
    Ext.fly没有所谓的缓存机制,得到什么就返回什么,不是多次使用的情况下
    “一次性地”使用该元素就应该使用Ext.fly(例如执行单项的任务)。
    使用Ext.fly的例子:
    // 引用该元素一次即可,搞掂了就完工
    Ext.fly('elId').hide();
    Ext.get和Ext.fly却别

    全选功能

    Ext.fly("selectAll").on("click",function(e,el){

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

    for(var i=0;ln=els.length,i<ln;i++){

         els[i].checked=el.checked;

    }

    })

    Ext.Query是Ext.DomQuery.select的简写形式

    基本选择符

    1:*:选择任何元素       Ext.qurey("*")

    2: E:根据元素标记E选择元素   Ext.query("E")    //E为元素标记,input,div

    3: E F:选择包含在标记E中的标记F   Ext.query("E F") //E,F均为元素标记

    4: E>F:选择包含在标记E中的直接子标记F  Ext.query("E>F")    //E,F均为元素标记

    5:  E+F:选择所有紧接在元素E后的元素F    Ext.query("E+F")   

    6: E~F:选择在元素E之后同层的元素F  Ext.query("E~F") 

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

    8:.classname:选择css类名为classname的元素   Ext.query("E .classname") //E为元素标记,className为css类名

    属性选择符

    1.[attribute]:选择带有属性attribute的元素

    语法:

    Ext.query("[attribute]")

    Ext.query("E[attribute]")

    2.[attribute=value];选择attribute的属性元素为value的元素

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

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

    3.[attribute^=value]:选择attribute的属性以value开头的元素

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

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

    4.[attribute$=value]:选择attribute的属性以value结尾的元素

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

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

    5.[attribute*=value]:选择attribute的属性值包含value的元素

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

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

    6,[attribute%=value]:选择attribute的属性值能整除value的元素

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

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

    7.[attribute!=value]:选择attribute的属性值不等于value的元素

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

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

    Css属性值选择器

    和属性选择符类似

    不同之处:

    1,使用{}代替属性选择符中的[]

    2,不要使用没有属性值的语法,如:Ext.qurey("input{display}"),原因-css属性和元素属性不同,一直是存在的,所以使用Ext.qurey("input")的结果是一样的

    3,经过compile方法变异后的属性函数中,byAttribute方法调用的custom参数值为‘{’

    4,在byAttribute方法中,会调用DomQurey对象的getStyle方法获取css属性值

    5,注意padding,background等可以合并定义的css属性,查询时必须拆分成单一的属性

    如padding-left,padding-right,或background-color

    伪类选择符

    1,E:first-child:选择元素E,且其为父节点的第一个子节点

       Ext.query("E:first-child") 如: Ext.query("input:first-child")

    2,E:last-child:选择元素E,且其为父节点的最后一个子节点

       Ext.query("E:last-child") 如: Ext.query("input:last-child")

    3,E:nth-child(n) :选择标记为E,且其为父节点的第N(N>=1)个子节点

       Ext.query("E:nth-child(n)") 如:Ext.query("input:nth-child(10)")

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

       Ext.qurey("E:nth-child(odd)")如:Ext.qurey("input:nth-child(odd)")

    5.E:nth-child(even)或:E:even  选择标记为E,且其为父节点的 偶数子节点的元素

       Ext.qurey("E:nth-child(even)")如:Ext.qurey("input:nth-child(even)")

    6.E:only-child  选择标记其为父节点的唯一子节点的元素

        Ext.qurey("E:only-child ")如:Ext.qurey("input:E:only-child ")

    7.E:checked 选择标记为E,且其checked属性为true的元素

       Ext.qurey("E:checked")

    8.E:first 选择标记为E,的第一个元素

       Ext.qurey("E:first ")

    9.E:last 选择标记为E的最后一个元素

       Ext.qurey("E:checked")

    10.E:nth(n) 标记为E的元素集合中的第n个元素

    Ext.qurey("E:nth(n)")

    11.E:contains(str) 选取标记为E,且其innerHtml属性值包含str的元素

  • 相关阅读:
    天气预报FLEX版本
    关于“ORA01000: 超出打开游标的最大数”
    WIN7(x64) IIS7.5 404.17错误:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。
    解决GDI+中“内存不足”问题
    Stack Overflow Exception
    清洁的Javascript
    设置SQL Server数据库中某些表为只读的多种方法
    程序员肿么了?为何总被认为是“屌丝”
    jquery datepicker 显示12个月份
    apache2.4配置虚拟主机随记
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/3598400.html
Copyright © 2011-2022 走看看