一起CSS

当前位置:一起CSS > CSS > 文章正文

用js模拟css属性选择器

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 条件注释。

查看:5,508 评论:6

随机日志

已经有 6 条群众意见

  1. keelii

    呵呵。又是我的沙发哈。

    这个是不是就是JQuery的原理呀! 对话

    #1
  2. keelii

    对了,你的RSS链接怎么是个空的呀? 对话

    #2
  3. 青色keelii

    不是,用的是原始的 javascript 。 对话

    #3
  4. 青色keelii

    没空加上去,哈哈。。。 对话

    #4
  5. teo康康

    默认连接字体颜色很怀旧,而且前倾了45°。
    很羡慕你啊,从幸福收藏夹一路寻来哒~
    *^^* 对话

    #5
  6. 百叶

    随随便便一个案例.css就写的这么漂亮.
    能不能放些你做的网站案例看看呀. 对话

    #6

我要发表意见