//on are tag names. //All the divs on the page: $$('div'); //All the divs and paragraphs //note: this returns an array with all the divs first, //then all the paragraphs: $$('div', 'p'); //When you include Selectors.js, you can //pass in CSS selectors. //All the divs with the css class 'myClass': $$('div.myClass') /All the paragraphs that are inside divs: $$('div p'); //All the bold tags in paragraphs with //Class 'foo' in divs with class 'myClass': $$('div.myClass p.foo b');
可以继承Selectors的DOM方法 | |
Element.getElement | Element.getAllNext |
Element.getElements | Element.getFirst |
Element.match | Element.getLast |
Element.getPrevious | Element.getParent |
Element.getAllPrevious | Element.getParents |
Element.getNext | Element.getChildren |
//All the inputs where name equals 'email' $$('input[name=email]') //All the images with urls that end in .gif: $$('img[src$=gif]') //All the links without target="_blank": $$('a[target!=_blank]') Note that these expressions can take double or single quotes when you want to search for something that has a space or other character: $$('input[name!="user[username]"]') $$('img[src$=".gif"]')
CSS3表达式匹配规则 | |
= | 匹配给定的属性是某个特定值的元素 |
^= | 匹配给定的属性是以某些值开始的元素 |
$= | 匹配给定的属性是以某些值结尾的元素 |
!= | 匹配给定的属性是不包含某个特定值的元素 |
*= | 匹配给定的属性是以包含某些值的元素 |
~= | 该属性的值必须是一系列用空格隔开的多个值,(比如,class=”title featured home”),而且这些值中的一个必须是指定的值”value”。 |
|= | 属性的值就是“value”或者以“value”开始并立即跟上一个“-”字符,也就是“value-”。(比如lang=”zh-cn”) |
选择器 | 描述 | 示例 | 备注 |
#id | 根据给定的id匹配一个元素 | $$(‘#myid’)选取文档中id为myid的一个元素 | |
.class | 根据给定的类名匹配元素 | $$(‘.myclass’)选取文档中所有class为myclass的元素 | |
element | 根据给定的标签名匹配元素 | $$(‘p’)选取文档中所有的<p>元素 | |
* | 匹配所有元素 | $$(‘*’)选取所有的元素 | IE中$$(‘*’)有问题 |
Selector1, Selector2, …..,SelectorN | 将每一个选择器匹配到的元素合并后一起返回 | $$(‘div’,’span’,'p.myclass’)选取所有<div>,<span>和class为myclass的<p>标签的一组元素 | |
选择器 | 描述 | 示例 | 注意 |
后代选择器 | |||
$$(‘ancestor descendant’) | 选取ancestor元素里的所有descendant(后代).元素即ancestor(祖先),descendant(子孙)。 | $$(‘body div’) 选取body里的所有的div元素。 | 后代选择器是基于一个元素是否是另一个元素的后代来决定是否应用样式的 |
直接子选择器 | |||
$$(‘parent>child’) | 选取parent元素下的child(子)元素,与$$(‘ancestor descendant’)是有区别的,$$(‘ancestor descendant’)选择的是后代元素。 | $$(‘body > div’) 选取body里元素是div的子元素。 | 选择parent的直接子节点child. child必须包含在parent中并且父类是parent元素。 |
兄弟(相邻)组合选择器 | |||
$$(‘prev+next’) | 选取紧跟在prev元素后的下一个元素。 | $$(‘.one + div’) 选取class为one的下一个 div 元素。 | prev和next是两个同级别的元素. 选中在prev元素后面的next元素。 |
普通兄弟组合选择器 | |||
$$(‘prev~siblings’) | 选取prev元素之后的所有siblings元素。 | $$(‘.two ~ div’)选择 class为two的元素后面的所有div兄弟元素。 $$(‘#someDiv~[title]’)选择id为someDiv的对象后面所有带有title属性的元素。 | siblings是过滤器 |
名称 | 描述 | 示例 |
[attribute] | 匹配包含给定属性的元素 | 查找所有含有 id 属性的 div 元素: $$(‘div[id]‘) |
[attribute=value] | 匹配给定的属性是某个特定值的元素 | 查找所有 name 属性是 newsletter 的 input 元素: $$(“input[name='newsletter']“).attr(‘checked’, true); |
[attribute!=value] | 匹配给定的属性是不包含某个特定值的元素 | 查找所有 name 属性不是 newsletter 的 input 元素: $$(“input[name!='newsletter']“).attr(‘checked’, true); |
[attribute^=value] | 匹配给定的属性是以某些值开始的元素 | $$(“input[name^='news']“) |
[attribute$=value] | 匹配给定的属性是以某些值结尾的元素 | 查找所有 name 以 ‘letter’ 结尾的 input 元素: $$(“input[name$='letter']“) |
[attribute*=value] | 匹配给定的属性是以包含某些值的元素 | 查找所有 name 包含 ‘man’ 的 input 元素: |
[attribute~=value] | 该属性的值必须是一系列用空格隔开的多个值,(比如,class=”title featured home”),而且这些值中的一个必须是指定的值”value”。 | 查找所有的a 元素,并且class属性中含有tit的元素 $$(‘a[class~=tit]‘) |
[attribute|=value] | 属性的值就是“value”或者以“value”开始并立即跟上一个“-”字符,也就是“value-”。(比如lang=”zh-cn”) | 该语句将匹配所有class属性包含”post”并带”-”字符的div元素。 $$(“[class|='post'] “) |
[attributeFilter1] [attributeFilter2] [attributeFilterN] | 复合属性选择器,需要同时满足多个条件时使用。 | 找到所有含有 id 属性,并且它的 name 属性是以 man 结尾的: $$("input[id][name$='man']") |
有话要说