建站学习网,专业提供各类建站教程,网页素材,SEO资讯等建站资源!

网站模板_网站源码_网站素材_建站教程_建站学习网

当前位置:建站学习网 > DIV+CSS教程 > DIV CSS教程 >

CSS选择器- easyUI.cssSelector更新

更新时间:2017-01-05整理编辑:建站学习网阅读:0
自从JQuery实现了Selector后,貌似其他一些JavaScript框架也开始向Selector靠拢,相继推出了自己的CSS选择器, 考虑到css选择器确实强大,所以,在easyUI中也添加了一个自己的cssSelector方法:easyUI.cssSelector('css选 择器',dom范围)
CSS选择器实现原理:
一、解析
1、格式化数据,将css选择器转换成一种便于后面进行操作的格式,这一步很重要,这是数据结构部分,后面的实现都将以此为依据。
以下面数据为例:
#a b.c .d + e:first-child > f[data = "hello world!"]
首先,捕获形如 [ 属性 = 值 ] 的数据,将"="两边的空格去掉,然后将“值”里的空格替换为一个不太可能会出现的临时字串,如0x20156
然后,在+、:、>、[ 符号前加空格
接着,将#、.、+、:、]、>后的空格去掉
最好将单引号和双引号也都去掉
做完上述替换操作后,变可得到形如下面的数据:
#a b.c .d +e :first-child >f [data=hello0xdh20156world!]
2、将格式化后的数据转换成这样的伪代码:取节点函数('css选择符',上一次操作的结果),以空格为分隔:
取节点函数('#a',上一次操作的结果)
取节点函数('b.c',上一次操作的结果)
取节点函数('.d',上一次操作的结果)
取节点函数('+e',上一次操作的结果)
取节点函数(':first-child',上一次操作的结果)
取节点函数('>f',上一次操作的结果)
取节点函数('[data=hello0xdh20156world!]',上一次操作的结果)
3、将css选择器解析成具体的取节点函数,如:
#a应当解析成:document.getElementById('a')
E#a应当解析成:document.getElementsByTagName('E'),然后遍历id=a的
之前进行过转换的0x20156记得重新转换为空格。
更多css Selectors的解释请参见:
http://www.w3.org/TR/CSS2/selector.html
二、编写取节点函数,将伪代码实现
在easyUI.cssSelector的实现中采用的是eval的方式,目前该方法尚未完全支持CSS2选择器,还在测试阶段!

本文网址:https://www.dedexuexi.com/divcss/jc/2032.html

本站部分文章搜集与网络,如有侵权请联系本站,转载请说明出处。

标签:技巧
收藏此文 赞一下!() 打赏本站

如本文对您有帮助,就请建站学习网抽根烟吧!

支付宝打赏
微信打赏
CSS的滤镜的效果详细介绍
« 上一篇2017年01月05日
用CSS floats创建三栏页布局
2017年01月05日下一篇 »
  • DIV CSS如何给文字字体添加下划线?
    0阅读
    在css中可以使用text-decoration属性或border-bottom属性来给文字添加下划线样式。下面本篇文章就来给大家介绍一下,希望对大家有所帮助。方法1:使用text-decoration属性设置css的text-decoration属性用于指定添加到文本的修饰,其underline属...
  • 纯CSS3实现带动画效果导航菜单无需js
    0阅读
    随着互联网的发展,网页能表现的东西越来越多。由最开始单纯的文字和链接构成的网页,到后来的表格布局,再到div+css模式,现在发展到了 html+css3。网页能表达的东西越来越多,css3兴起已经
  • CSS定义超链接四个状态的正确顺序L-V-H-A
    0阅读
    css定义超链接是要有先后顺序的。否则,在某些浏览器里面有可能会出现某个样式不起作用的bug。不能正确显示想要的效果。 CSS属性的排列顺序: L-V-H-A 。 L-V-H-A是link、visited、hover、active的简写
  • 在ie7下css居中样式text-align:center;偏左问题解决方法
    0阅读
    css样式text-align:center;在ie7下偏左问题,想必有很多朋友的遇到过吧,下面有个不错的方法,大家可以参考下,希望对大家有所帮助 复制代码 代码如下: body { text-align:center; } 用ie7打开是居左的。
  • 对div盒子模型使用心得总结
    0阅读
    相信每一个从事web开发的人对盒子模型都有一个特殊的理解吧,本文也有一个理解并附有示例代码,喜欢的朋友可以参考下 盒子模型的计算 外边距(margin)+边框(border)+内边距(padding)+内容(content
 
QQ在线咨询