Ext.DomQuery选择符的用法

    技术2025-08-05  21

    第一部分:元素选择符Selector

    // 这个查询会返回有两个元素的数组因为查询选中对整个文档的所有span标签。 Ext.query ( "span" ) ; // 这个查询会返回有一个元素的数组因为查询顾及到了foo这个id。 Ext.query ( "span" , "foo" ) ; // 这个查询会返回包含我们foo div一个元素的数组! Ext.query ( "#foo" ) ; *这个查询会返回有一个元素的数组, 包含与之前例子一样的div但是我们使用了class name来获取*/ Ext.query ( ".foo" ) ;

    要获取子标签,我们只须在两个选择符之间插入一个空格:

    // 这会返回有一个元素的数组,内容为div标签下的p标签 Ext.query ( "div p" ) ; // 这会返回有两个元素的数组,内容为div标签下的span标签 Ext.query ( "div span" ) ;

    第二部分:属性选择符Attributes selectors

    // 我们检查出任何存在有class属性的元素。 // 这个查询会返回5个元素的数组。 Ext.query ( "*[class]" ) ; // 这会得到class等于“bar”的所有元素 Ext.query ( "*[class=bar]" ) ;   // 这会得到class不等于“bar”的所有元素 Ext.query ( "*[class!=bar]" ) ;   // 这会得到class从“b”字头开始的所有元素 Ext.query ( "*[class^=b]" ) ;   //这会得到class由“r”结尾的所有元素 Ext.query ( "*[class$=r]" ) ;   //这会得到在class中抽出“a”字符的所有元素 Ext.query ( "*[class*=a]" ) ;

    第三部分: CSS值元素选择符

    // 获取所以红色的元素 Ext.query ( "*{color=red}" ) ; // [div#bar.foo]   // 获取所有粉红颜色的并且是有红色子元素的元素 Ext.query ( "*{color=red} *{color=pink}" ) ; // [span.bar]   // 获取所有不是红色文字的元素 Ext.query ( "*{color!=red}" ) ; // [html, head, script firebug.js, link, body#ext-gen2.ext-gecko, script ext-base.js, script ext-core.js, span.bar, a www.extjs.com, div#foo.bar, p, span.bar, a test.html#]   // 获取所有颜色属性是从“yel”开始的元素 Ext.query ( "*{color^=yel}" ) ; // [a www.extjs.com]   // 获取所有颜色属性是以“ow”结束的元素 Ext.query ( "*{color$=ow}" ) ; // [a www.extjs.com]   // 获取所有颜色属性包含“ow”字符的元素 Ext.query ( "*{color*=ow}" ) ; // [a www.extjs.com, span.bar]

    伪类选择符Pseudo Classes selectors

     

    /* SPAN元素为其父元素的第一个子元素 */ Ext.query ( "span:first-child" ) ; // [span.bar]   /* A元素为其父元素的最后一个子元素 */ Ext.query ( "a:last-child" ) // [a www.extjs.com, a test.html#]   /* SPAN元素为其父元素的第2个子元素(由1开始的个数) */ Ext.query ( "span:nth-child(2)" ) // [span.bar]   /* TR元素为其父元素的奇数个数的子元素 */ Ext.query ( "tr:nth-child(odd)" ) // [tr, tr]   /* LI元素为其父元素的奇数个数的子元素 */ Ext.query ( "li:nth-child(even)" ) // [li, li]   /* 返回A元素,A元素为其父元素的唯一子元素 */   Ext.query ( "a:only-child" ) // [a test.html#]   /* 返回所有选中的(checked)的INPUT元素 */ Ext.query ( "input:checked" ) // [input#chked on]   /* 返回第一个的TR元素 */ Ext.query ( "tr:first" ) // [tr]   /* 返回最后一个的INPUT元素 */ Ext.query ( "input:last" ) // [input#notChked on]   /* 返回第二个的TD元素 */ Ext.query ( "td:nth(2)" ) // [td]   /* 返回每一个包含“within”字符串的DIV */ Ext.query ( "div:contains(within)" ) // [div#bar.foo, div#foo.bar]   /* 返回没有包含FORM子元素以外的那些DIV */ Ext.query ( "div:not(form)" ) [ div#bar.foo , div#foo.bar , div]   /* 返回包含有A元素的那些DIV集合 */ Ext.query ( "div:has(a)" ) // [div#bar.foo, div#foo.bar, div]   /* 返回接着会继续有TD的那些TD集合。 尤其一个地方是,如果使用了colspan属性的TD便会忽略 */ Ext.query ( "td:next(td)" ) // [td, td]   /* 返回居前于INPUT元素的那些LABEL元素集合 */ Ext.query ( "label:prev(input)" ) //[label, label]
    最新回复(0)