+ -
当前位置:首页 → 问答吧 → 【已解决】怎么用JS写类似JQuery的addClass

【已解决】怎么用JS写类似JQuery的addClass

时间:2010-05-29

来源:互联网

保持标签原有的class属性, 然后在追加上一个。

------------------
非常感谢3#给的思路

2# 4# 5#给出的代码

[ 本帖最后由 124492237 于 2010-5-31 09:06 编辑 ]

作者: 124492237   发布时间: 2010-05-29

obj.className +=' newClass';

注意 有个空格

作者: bluetoothswh   发布时间: 2010-05-29

首先你要知道两点:
一、标签class的脚本特性为className,就是说访问标签的class的时候,需要用element.className
二、class属性中包含多个class时是以空格隔开
流程:
1.取得现有className的值
2.判断是否已经包含待添加的class
  2.1 现有className和待添加的class两端加空格,记为spaceClassName与spaceClass(这样可以有效判断包含关系,直接判断的话思考下有什么问题)
  2.2 用indexOf判断spaceClassName是否包含spaceClass
3.如果包含,退出,否则继续
4.将className与class加空格连接并过滤掉重复的空格,得到newClassName
5.设置新的className值为newClassName

现在,自己写吧

作者: 我佛山人   发布时间: 2010-05-30

function addClass(elem,cls) {
       if (!elem.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'))) elem.className += " "+cls;
}

作者: ariesjia   发布时间: 2010-05-30

<script type="text/javascript">
        function addClass(obj,className){
            obj = document.getElementById(obj);
            objClass = obj.className;
            if(objClass.indexOf(className)=="-1"){
               alert(objClass);
               obj.className += " " + className;
            }
        }
    </script>

作者: musictea   发布时间: 2010-05-30

相关阅读 更多

热门下载

更多