CSS选择器

   前半年比较闲的时候,在学习了javascript的同时,顺便也学人家写了个CSS选择器,语法结构都是参考jquery选择器,增加了下nth-child跟nth筛选,修改了一下下 not

 

 

 

  比较

     $("div>ul:not(span)")  与 apolo("div>ul:not(span)")的结果

 

     第一个not是过滤掉带有span的div元素

     第二个not是过滤掉带有span的ul元素

 

 贴一下大体代码:

 

有兴趣的话我可以留个e-mail,我可以发给各位, 这个选择器是参考jquery的,简化了很多,有bug的话请多多指出,有需要的可自行更改。

/*! * css选择器 * 冒泡原理 * 如果后面的表达式无效,只返回有效表达式匹配的结果 * author chenyipeng * e-mail: yia0223@gmail.com * ps: 如有bug请多多包涵 * 参考: jquery css选择器 * 目前实现 * #id 根据给定的ID匹配一个元素 * tagName 匹配给定的元素名的所有元素 * .class 匹配class=class的所有元素 //非IE下,可以直接find * selector1,selector2 将每一个选择器匹配到的元素合并后一起返回 * * 匹配所有元素 * tag1 tag2(也可以写做tag1 in tag2) 在给定的tag1元素下匹配所有的后代tag2元素 * parent>child 匹配给定元素下的所有直属子元素 * prev+next 匹配所有紧接在pre元素后的next元素 * prev~siblings 【匹配pre元素之后的所有siblings元素(不一定要紧接)】 * :first 匹配元素的第一个,例如ul:first,匹配第一个ul * :last 匹配元素的最后一个 * :even 匹配所有索引值为偶数的元素 * :odd 匹配所有索引值为奇数的元素 * :eq(index) 【匹配等于给定索引值的元素,index以0开始计数】 * :gt(index) 【匹配大于给定索引值的所有元素】 eg ul:gt(0) * :lt(index) 【匹配小于给定索引值的所有元素】 eg ul:lt(3) * :nth(index/even/odd/expression) 【匹配第N个子或奇偶元素】 * :first-child 【匹配第一个子元素是(前缀)的元素】 eg ul:first-child 匹配ul为首子元素的ul ---这里只有筛选nodeType=1 * :last-child 【匹配最后一个子元素是(前缀)的元素】 eg ul:last-child 匹配ul为最后一个子元素的ul * :only-child 【如果某个元素是父元素中唯一的子元素,那将会被匹配】 * :nth-child 【匹配其父元素下的第N个子或奇偶元素】 * :has(selector) 【selector必须是个有效的表达式,这里不去匹配元素本身的属性,所有表达式.class等本身属性一般匹配无效】 * :not(selector) */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值