下面是css2selector的语法,当然很多浏览器只是支持其中的一部分,Prototype中的Selector主要支持tag选择器、class选择器和id选择器,还有属性(attribute)选择器,基本上包含我们平时所用的所有类型
ThefollowingtablesummarizesCSS2selectorsyntax,详细的可以看http://www.w3.org/TR/REC-CSS2/selector.html:
Pattern |
Meaning |
Describedinsection |
* |
Matchesanyelement. |
Universalselector |
E |
MatchesanyEelement(i.e.,anelementoftypeE). |
Typeselectors |
EF |
MatchesanyFelementthatisadescendantofanEelement. |
Descendantselectors |
E>F |
MatchesanyFelementthatisachildofanelementE. |
Childselectors |
E:first-child |
MatcheselementEwhenEisthefirstchildofitsparent. |
The:first-childpseudo-class |
E:linkE:visited |
MatcheselementEifEisthesourceanchorofahyperlinkofwhichthetargetisnotyetvisited(:link)oralreadyvisited(:visited). |
Thelinkpseudo-classes |
E:activeE:hoverE:focus |
MatchesEduringcertainuseractions. |
Thedynamicpseudo-classes |
E:lang(c) |
MatcheselementoftypeEifitisin(human)languagec(thedocumentlanguagespecifieshowlanguageisdetermined). |
The:lang()pseudo-class |
E+F |
MatchesanyFelementimmediatelyprecededbyanelementE. |
Adjacentselectors |
E[foo] |
MatchesanyEelementwiththe“foo”attributeset(whateverthevalue). |
Attributeselectors |
E[foo=”warning”] |
MatchesanyEelementwhose“foo”attributevalueisexactlyequalto“warning”. |
Attributeselectors |
E[foo~=”warning”] |
MatchesanyEelementwhose“foo”attributevalueisalistofspace-separatedvalues,oneofwhichisexactlyequalto“warning”. |
Attributeselectors |
E[lang|=”en”] |
MatchesanyEelementwhose“lang”attributehasahyphen-separatedlistofvaluesbeginning(fromtheleft)with“en”. |
Attributeselectors |
DIV.warning |
HTMLonly.ThesameasDIV[class~=”warning”]. |
Classselectors |
E#myid |
MatchesanyEelementIDequalto“myid”. |
IDselectors |
Selector中包含Selector对象和类,
Selector对象具有下面两个方法:
match(element):元素是否与本selector匹配,在Element中已经介绍了
findElements(parentNode):parentNode中所有匹配本selector的子孙元素列表
使用方法也很简单vars=newSelector(expression);s.match(element);s.findElements($(element)),其中expression可以是如下方式"div"、"#id"、".class"、"div#id"、"div[attribute]"、"div[attribute=fff]"、"div[attribute!=sdf]"
其中Selector也有几个静态方法,它们分别是:
matchElements(elements,expression):返回elements中符合expression的元素列表
findElement(elements,expression,index):返回elements中符合expression的元素列表中索引为index的元素
findChildElements(element,expressions):找出element的子孙元素中符合expressions的元素列表,其中expressions是一个expression数组,其中的expression支持"divli.#id"形式
$$方法:只是简单的调用returnSelector.findChildElements(document,$A(arguments))
虽然Selector有这么多方法,但是大部分都是内部调用的,我们一般都很少使用,因为我们有个一个方便的方法$$,对于绝大部分情况已经足够了