书签 分享 收藏 举报 版权申诉 / 15

类型选择器与DOM操作.docx

  • 文档编号:11187914
  • 上传时间:2023-05-29
  • 格式:DOCX
  • 页数:15
  • 大小:20.19KB

div2content

div2content

[js]

//查询Id=div1的元素,返回第一个匹配元素的Ext.Element类型

//该方法只能查Id,不支持选择器

vardiv1=Ext.get("div1");

console.log(div1);

//功能同上

vardiv2=Ext.fly("div2");

console.log(div2);

//查询Id=div1的元素的dom对象

vardiv1dom=Ext.get("div1").dom;

console.log(div1dom);

vardiv2dom=Ext.getDom("div2");

console.log(div2dom);

//获取body元素的Ext.Element类型

varbody=Ext.getBody();

console.log(body);

//返回当前HTML文档的Ext.Element类型

vardoc=Ext.getDoc();

console.log(doc);

//查询Id=div1的元素,返回满足条件的集合Ext.CompositeElement类型

//返回的是个数组

varselDiv1=Ext.select("#div1");

console.log(selDiv1);

varselDiv=selDiv1.elements[0];

console.log(selDiv);

//查询属性title=mytest的div,返回满足条件的集合Ext.CompositeElement类型,这里是extjs对象

varselDiv2=Ext.select("div[title='mytest']").elements[0];

cosole.log(selDiv2);

//查询属性title=d1的div,返回满足条件的dom节点集合,注意这里返回的是dom数据

varequery=Ext.query("div[title='mytest']")[0];

console.log(equery);

说明:

Ext.get和Ext.fly的区别:

通俗点讲,他们的作用都是一样的,都是获取元素。

但是前者每次调用都会生成一个Ext.Element对象,开辟新的内存空间,而后者共享了一个公用的内存空间,每次调用都会覆盖前一次的信息。

由于Ext.Element比较庞大,后者的好处是可以节省资源。

如果你获取的Ext.Element不需要长期保持重复调用,用后者较为合理。

 

2.选择器语法简介

JQuery选择器支持CSS3选择符,ExtJs同样也提供支持,除此之外还支持基本的XPath语法。

下面分别讲解:

1)CSS3选择符

下面列举的命令是单个形式,都可以无限组合使用。

元素选择符:

任意元素

E一个标签为E的元素

EF所有E元素的分支元素中含有标签为F的元素

E>F或E/F所有E元素的直系子元素中含有标签为F的元素

E+F所有标签为F并紧随着标签为E的元素之后的元素

E~F所有标签为F并与标签为E的元素是侧边的元素

属性选择符:

@与引号的使用是可选的。

例如:

div[@foo='bar']也是一个有效的属性选择符。

E[foo]拥有一个名为“foo”的属性

E[foo=bar]拥有一个名为“foo”且值为“bar”的属性

E[foo^=bar]拥有一个名为“foo”且值以“bar”开头的属性

E[foo$=bar]拥有一个名为“foo”且值以“bar”结尾的属性=bar]拥有一个名为“foo”且值包含字串“bar”的属性

E[foo%=2]拥有一个名为“foo”且值能够被2整除的属性

E[foo!

=bar]拥有一个名为“foo”且值不为“bar”的属性

伪类:

E:

first-childE元素为其父元素的第一个子元素

E:

last-childE元素为其父元素的最后一个子元素

E:

nth-child(n)E元素为其父元素的第n个子元素(由1开始的个数)

E:

nth-child(odd)E元素为其父元素的奇数个数的子元素

E:

nth-child(even)E元素为其父元素的偶数个数的子元素

E:

only-childE元素为其父元素的唯一子元素

E:

checkedE元素为拥有一个名为“checked”且值为“true”的元素(例如:

单选框或复选框)

E:

first结果集中第一个E元素

E:

last结果集中最后一个E元素

E:

nth(n)结果集中第n个E元素(由1开始的个数)

E:

odd:

nth-child(odd)的简写

E:

even:

nth-child(even)的简写

E:

contains(foo)E元素的innerHTML属性中包含“foo”字串

E:

nodeValue(foo)E元素包含一个textNode节点且nodeValue等于“foo”

E:

not(S)一个与简单选择符S不匹配的E元素

E:

has(S)一个包含与简单选择符S相匹配的分支元素的E元素

E:

next(S)下一个侧边元素为与简单选择符S相匹配的E元素

E:

prev(S)上一个侧边元素为与简单选择符S相匹配的E元素

CSS值选择符:

E{display=none}css的“display”属性等于“none”

E{display^=none}css的“display”属性以“none”开始

E{display$=none}css的“display”属性以“none”结尾=none}css的“display”属性包含字串“none”

E{display%=2}css的“display”属性能够被2整除

E{display!

=none}css的“display”属性不等于“none”

示例:

1.ElementSelectors:

(元素选择器)

[html]

div1content

div2content

div1anothercontent

div3content

1

2

[js]

Ext.core.DomQuery.select('表达式')返回HTMLElement[]

*anyelement

Ext.core.DomQuery.select('*')//返回所有dom元素

EanelementwiththetagE

Ext.core.DomQuery.select('div')//返回所有div元素

EFAlldescendentelementsofEthathavethetagF

Ext.core.DomQuery.select('divspan')//返回所有div下的span元素(无限层级1,2都会匹配)

Ext.DomQuery.select("div>span")//匹配直接子元素只向下查询一级(返回1)

Ext.DomQuery.select("div+span")//返回平级的下面第一个匹配的元素(444)

Ext.DomQuery.select("div~span")//返回平级的下面所有匹配的元素(444,666,777,888)注意不匹配555,只返回平级的

 

2、ExtJs4操作属性

AttributeSelectors:

(属性选择器)

E[foo]hasanattribute"foo"

Ext.DomQuery.select('*[foo]')//返回包含foo属性的所有元素(*代表所有DOM元素)

Ext.DomQuery.select('div[foo]')//返回包含foo属性的所有DIV元素

E[foo=bar]hasanattribute"foo"thatequals"bar"

Ext.DomQuery.select('div[foo=bar]')//返回所有属性foo等于bar的DIV元素

E[foo^=bar]hasanattribute"foo"thatstartswith"bar"

Ext.DomQuery.select('div[foo^=bar]')//返回所有属性foo已bar开头的DIV元素

E[foo$=bar]hasanattribute"foo"thatendswith"bar"

Ext.DomQuery.select('div[foo$=bar]')//返回所有属性foo已bar结尾的DIV元素

E[foo*=bar]hasanattribute"foo"thatcontainsthesubstring"bar"

Ext.DomQuery.select('div[foo*=bar]')//返回所有属性foo包含bar的DIV元素

E[foo%=2]hasanattribute"foo"thatisevenlydivisibleby2

Ext.DomQuery.select('div[foo%=2]')//返回所有属性foo能被2整除的DIV元素

E[foo!

=bar]attribute"foo"doesnotequal"bar"

Ext.DomQuery.select('div[foo!

=bar]')//返回所有属性foo不等于bar的DIV元素

三、CSSValueSelectors:

(Css选择器)

与属性上面的属性选择器用法一样,只不过这里匹配的是CSS,STYLE

E{display=none}cssvalue"display"thatequals"none"

E{display^=none}cssvalue"display"thatstartswith"none"

E{display$=none}cssvalue"display"thatendswith"none"

E{display*=none}cssvalue"display"thatcontainsthesubstring"none"

E{display%=2}cssvalue"display"thatisevenlydivisibleby2

E{display!

=none}cssvalue"display"thatdoesnotequal"none"

PseudoClasses:

(伪类选择器)

E:

first-childEisthefirstchildofitsparent

示例:

[html]

none;">

foo

foo

33

Ext.DomQuery.select('div:

first-child')//返回元素div,并且div是它父元素的下面的第一个子元素

//返回div0,div1因为div0的父元素是body并且它是body在面的第一个元素,div1的父元素是div0.并且他是div0下面的第一个元素

E:

last-childEisthelastchildofitsparent

Ext.DomQuery.select('div:

last-child')//跟上面的正好相反.是父元素中的最后一个元素

//返回div2,div3

E:

nth-child(_n_)Eisthe_n_thchildofitsparent(1basedasperthespec)

//Ext.DomQuery.select('div:

nth-child

(1)')返回在其父元素中第N个的E元素返回div0,div1,div4

//Ext.DomQuery.select('div:

nth-child

(2)')返回div2,div3

E:

nth-child(odd)Eisanoddchildofitsparent

//与上面类似返回奇数

E:

nth-child(even)Eisanevenchildofitsparent

//与上面类似返回偶数

E:

only-childEistheonlychildofitsparent

//Ext.DomQuery.select('div:

only-child')返回父元素当中只有一个元素的E元素,返回div4

E:

checkedEisanelementthatishasacheckedattributethatistrue(e.g.aradioorcheckbox)

//Ext.DomQuery.select('input:

checked')返回选中的元素1,2

E:

firstthefirstEintheresultset

//返回匹配元素结果集中的第一个元素

E:

lastthelastEintheresultset

//返回匹配元素结果集中的最后一个元素

E:

nth(_n_)the_n_thEintheresultset(1based)

//返回匹配元素结果集中的第N个元素

E:

oddshortcutfor:

nth-child(odd)

//与:

nth-child(odd)相同

E:

evenshortcutfor:

nth-child(even)

//于:

nth-child(even)相同

E:

contains(foo)E'sinnerHTMLcontainsthesubstring"foo"

//Ext.DomQuery.select('div:

contains(foo)')innerHTML属性中包含foo的E元素,[div#0,div#1,div#2]

E:

nodeValue(foo)EcontainsatextNodewithanodeValuethatequals"foo"

//Ext.DomQuery.select('div:

nodeValue(foo)')//返回值包含一个文本元素,并且值为foo的div元素[div#2]

E:

not(S)anEelementthatdoesnotmatchsimpleselectorS

//Ext.DomQuery.select('div:

not([id=3])')(注意红色地方放选择器表达式)返回id不等于3的div返回[div#0,div#1,div#2,div#4,div#5]

E:

has(S)anEelementthathasadescendentthatmatchessimpleselectorS

//Ext.DomQuery.select('div:

has(span[id=s1])')返回包含span[id=s1]表达式所匹配元素的div元素

//返回[div#0,div#1]

E:

next(S)anEelementwhosenextsiblingmatchessimpleselectorS

//Ext.DomQuery.select('div:

next(div[id=3])')返回div元素,并且其平级元素的下一个是div[id=3]所匹配的元素

//匹配div#1

E:

prev(S)anEelementwhoseprevioussiblingmatchessimpleselectorS

//Ext.DomQuery.select('div:

next(div[id=3])')返回div元素,并且其平级元素的上一个是div[id=3]所匹配的元素

//匹配div#5

E:

any(S1|S2|S2)anEelementwhichmatchesanyofthesimpleselectorsS1,S2orS3

//Ext.DomQuery.select('div:

any([id=2]|[id=3]|[id=4])')或者的关系

E:

visible(true)anEelementwhichisdeeplyvisibleaccordingtoExt.dom.Element.isVisible

//Ext.DomQuery.select('div:

visible(true)')匹配所有可见的div返回[div#0,div#3,div#4,div#5]

2)XPath语法

下面通过几个例子来说明:

/html/body/div/div:

从根目录开始找,找到正文的第二层全部DIV。

div/div:

在全文匹配DIV元素,并获取包含子DIV的全部子DIV集合。

如:

varobjs=Ext.DomQuery.select("/html/body/div/div");

objs=Ext.DomQuery.select("div/span");

四、ExtJs4中的筛选

vare=Ext.select(".c1");

//过滤

//获取匹配的第二个元素

e.item

(1);

//再次筛选,属性title=t1的div,集合中不满足条件的元素自动移去

e.filter("div[title=t1]");

e=Ext.select(".c1");

//父节点Id=div1时返回true

e.first().parent().is("#div1");

//查找

//获取集合中第一个,最后一个:

e.first();

e.last();

//单个元素的前一个,匹配选择器的后一个:

e.item

(1).next("div[title=t2]");

e.item

(1).prev();

vare2=Ext.get("div1");

//获取子节点的第一个,最后一个:

e2.first();

e2.last();

五、文档处理

vare=Ext.select("div.c1");

//插入

//分别在相对于文档e的四个位置插入html:

e.first().insertHtml("afterBegin","新内容");

e.first().insertHtml("beforeEnd","新内容");

e.first().insertHtml("beforeBegin","新内容");

e.first().insertHtml("afterEnd","新内容");

//包裹

e.wrap({

tag:

'p'

});

//用text1替换集合第五个元素

e.replaceElement(4,"text1",true);

//替换用当前元素去替换掉div2标签

e.first().replace("div2",t

举报
举报
版权申诉
版权申诉
word格式文档无特别注明外均可编辑修改;预览文档经过压缩,下载后原文更清晰! 立即下载
配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
选择器 DOM 操作
提示  冰点文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:选择器与DOM操作.docx
链接地址:https://www.bingdoc.com/p-11187914.html
相关搜索
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2


收起
展开