IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    用js模拟css属性选择器

    青色发表于 2009-09-21 01:21:22
    love 0

    CSS 的属性选择器是很有用的,它能有效的减少类的使用,但众所周知,IE6 是不支持 CSS 属性选择器的,为了兼容 IE6 ,一般的做法还是给需要的元素额外加类。如果是静态页面,那还好处理,直接在需要的元素上加上类,但如果是动态内容或其他因素影响,不能确定要在哪个元素上加类,那就比较棘手了。这个时候用 js 来处理应该是比较好的,方法也许您也想到了,就是:获取元素属性的值,然后判断值是否包含指定的字符串,如果包含就加上类。

    做一个列子吧,就拿最近做的一个东西来做吧,是一个列表,如果这个列表中的某个连接是直接打开 pdf 文件,就给这个链接后面加上 pdf 的小图标,以示提醒作用。看代码吧,XHTML 和 CSS 代码就省略了,看主要的 JS 代码:

    window.onload = function(){
    	var list = document.getElementById('list');
    	var listA = list.getElementsByTagName('a');
    	for(var i = 0; i < listA.length; i++){
    		var href = listA[i].href;
    		if(href.indexOf('pdf') != -1){
    			listA[i].className = 'haspdf';
    		}
    	}
    }

    查看Demo

    因为这段代码主要针对 IE6 及以下版本,所以可以加上 IE 条件注释。

    相关日志

    • 别说IE6不认识!important别说IE6不认识!important (6)
    • CSS Expressions有多可怕CSS Expressions有多可怕 (3)
    • 用js让“footer”处于底部用js让“footer”处于底部 (0)
    • 网页版”Firebug”网页版”Firebug” (9)
    • jQuery插件Cloud ZoomjQuery插件Cloud Zoom (7)

    Original article: 用js模拟css属性选择器

    ©2015 一起CSS. All Rights Reserved.



沪ICP备19023445号-2号
友情链接