addclass

怎么用JS写类似JQuery的addClass

首先你要知道两点:
一、标签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

现在,自己写吧

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

\\\\\\\\\\\\\\\

<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>

addClass
描述: 为每个匹配的元素添加指定的样式类名
.addClass( className ),className为一个String字符串,为指定元素添加这个classname的类
.addClass( function(index, currentClass) ),这个函数返回一个或更多用空格隔开的要增加的样式名。接收index 参数表示元素在匹配集合中的索引位置和html 参数表示元素上原来的 HTML 内容。在函数中this指向匹配元素集合中的当前元素。

removeClass
描述: 移除集合中每个匹配元素上一个,多个或全部样式。
.removeClass( [className ] ),每个匹配元素移除的一个或多个用空格隔开的样式名。
.removeClass( function(index, class) ),这个函数,返回一个或多个将要被移除的样式名。index 参数表示在所有匹配元素的集合中当前元素的索引位置。class 参数表示原有的样式名。

时间: 2024-10-11 06:08:30

addclass的相关文章

jquery13 attr() prop() val() addClass()等 : 对元素属性的操作

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <script src="jquery-2.0.3.js"></script> <script> jQu

jQuery07源码 (3803 , 4299) attr() prop() val() addClass()等 : 对元素属性的操作

var nodeHook, boolHook, rclass = /[\t\r\n\f]/g, rreturn = /\r/g, rfocusable = /^(?:input|select|textarea|button)$/i; jQuery.fn.extend({ attr: function( name, value ) { //遍历this //arguments.length > 1,jQuery.attr(this[i],name,value),返回this //arguments

原生js 用正则实现removeclass hasclass getsclass addclass .

1 function getByClass(oParent,sClass){ 2 if(oParent.getElementsByClassName){ 3 return oParent.getElementsByClassName(sClass); 4 }else{ 5 var arr=[]; 6 var aEle=oParent.getElementsByTagName('*'); 7 var re=new RegExp('\\b'+sClass+'\\b'); 8 9 for(var i=

原生JavaScript实现的addclass,removeclass,hasclass,toggleclass,getbyclass

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>addclass,removeclass,hasclass,toggleclass,getbyclass</title> </head> <body> <div class="div1" id="b

.css()与.addClass()设置样式的区别

对于样式的设置,addClass与css方法两者之间有什么区别? 可维护性: .addClass()的本质是通过定义个class类的样式规则,给元素添加一个或多个类.css方法是通过JavaScript大量代码进行改变元素的样式 通过.addClass()我们可以批量的给相同的元素设置统一规则,变动起来比较方便,可以统一修改删除.如果通过.css()方法就需要指定每一个元素是一一的修改,日后维护也要一一的修改,比较麻烦 灵活性: 通过.css()方式可以很容易动态的去改变一个样式的属性,不需要在

.addClass(),.removeClass(),.toggleClass()的区别

.addClass("className")方法是用来给指定元素增加类名,也就是说给指定的元素追加样式: 可以同时添加多个类名,空格符隔开 $("selector").addClass("className1 className2"); .removeClass("className")方法是用来给指定的元素移除类名,也就是说给指定元素移除样式: 可以同时移除多个类名,空格符隔开 $("selector")

原生js实现addClass方法

function addClass(element,class) { // }

ul li span addClass removeClass

<link type="text/css" href="./style/css/base.css" rel="stylesheet"><link type="text/css" href="./style/css/services.css" rel="stylesheet"><section class="select prop_nv distri

removeClass,addClass,getByClass

addClass: function addClass(obj, sClass){ var re=new RegExp('\\b'+sClass+'\\b'); if(obj.className.search(re)==-1){ if(obj.className) { obj.className+=' '+sClass; }else{ obj.className=sClass; } } } removeClass: function removeClass(obj, sClass){ var r

jQuery addClass() 源码解读

addClass: function( value ) { var classes, elem, cur, clazz, j, i = 0, len = this.length, proceed = typeof value === "string" && value; if ( jQuery.isFunction( value ) ) { return this.each(function( j ) { jQuery( this ).addClass( value.c