选择器:
* 任何元素 *
E 一个类型为E的元素 h1
E[foo] 一个有foo属性的元素 p[myAtttib]
E[foo="bar"] 一个元素E,foo属性等于bar p[myAtttib="special"]
E[foo^="bar"] 一个元素E,foo属性以bar字符串为起始 p[myAtttib^="special"]
E[foo$="bar"] 一个元素E,foo属性以bar字符串为结尾 p[myAtttib$="special"]
E[foo*="bar"] 一个元素E,foo属性包含bar字符串 p[myAtttib*="special"]
E:nth-child(n) 一个元素E,其父节点的第n个子节点 div.questions p:nth-child(2) 第2个子节点
E:nth-child(even) 一个元素E,其父节点的第偶数个子节点
E:nth-child(odd) 一个元素E,其父节点的第奇数个子节点
E:first-child 一个元素E,其父节点的第一个子节点
E:last-child 一个元素E,其父节点的最后一个子节点
E:not(s) 一个元素E,它不匹配简单选择器 p:not(.test)
E > F F是E的子节点
E - F F是E的前继节点
E + F F是E的直接前继节点
s1,s2 s1、s2的并集
dojo.addClass(dojo.query("form > p")[0],"formTitle");
dojo.addClass(dojo.query("p[title='test']")[0],"border");
dojo.style(dojo.query("div.questions p:nth-child(even)")[1],"border","1px solid red");
dojo.style(dojo.query("p:not(.test)")[1],"border","1px solid gray");
或者用以下更简洁的表示方法
dojo.query("div .questions p:nth-child(even)").style("border","1px solid yellow");
dojo.Nodelist
dojo.query 返回的是匹配查询结果的所有节点构成的数组;这个数组实际上是一个特殊的数组对象称为dojo.NodeList
如何添加方法到dojo,jquery返回的对象上?
dojo.query返回的是一个dojo.Nodelist实例,因此只需要在dojo.Nodelist的原型对象上添加一个属性就可以了。
dojo.NodeList.prototype.fadeAndClear = function(){
this.forEach(function(node){
dojo.anim(node,{backgroundColor:"#ccc"});
});
}
dojo.query("div.questions p").fadeAndClear();