第一部分:元素选择符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]