<div id="d3" class="cur"></div>
 var mylibs = (function(){
var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
core_trim = String.prototype.trim,
core_rspace = /\s+/,
rclass = /[\t\r\n]/g; var trim = function(text){
if(core_trim && !core_trim.call("\uFEFF\xA0")){
return text == null ?
"" :
core_trim.call(text);
}else{
return text == null ?
"" :
(text + "").replace(rtrim, "");
}
}; return {
addClass:function(elem,value){
var classNames,setClass; if (!value || typeof value !== "string") return;
if (elem.nodeType !== 1) return; classNames = value.split(core_rspace); if (!elem.className && classNames.length === 1){
elem.className = value;
}else{
setClass = " " + elem.className + " "; for (var i = 0; i < classNames.length; i++){
if (setClass.indexOf(" " + classNames[ i ] + " ") < 0)
setClass += classNames[ i ] + " ";
}
elem.className = trim(setClass);
}
},
removeClass:function(elem,value){ var removes,className; if ((!value || typeof value !== "string") && value !== undefined) return;
if (elem.nodeType !== 1 || !elem.className) return; removes = (value || "").split(core_rspace);
className = (" " + elem.className + " ").replace(rclass," "); // loop over each item in the removal list
for (var i=0;i<removes.length;i++){
// Remove until there is nothing to remove,
while (className.indexOf(" " + removes[i] + " ") >= 0)
className = className.replace(" " + removes[i] + " "," ");
}
elem.className = value ? trim(className) : "";
},
toggleClass:function(elem,value,stateVal){
var type = typeof value,
isBool = typeof stateVal === "boolean"; if (type !== "string") return; // toggle individual class names
var className,
i = 0,
state = stateVal,
classNames = value.split(core_rspace); while ((className = classNames[ i++ ])){
// check each className given, space separated list
state = isBool ? state : !this.hasClass(elem,className);
(state ? this['addClass'] : this['removeClass'])(elem,className);
}
},
hasClass:function(elem,selector){
var className = " " + selector + " ";
if (elem.nodeType === 1 && (" " + elem.className + " ").replace(rclass," ").indexOf(className) >= 0)
return true;
return false;
}
};
})(); var dom = document.getElementById('d3');
mylibs.addClass(dom,'red');
mylibs.removeClass(dom,'cur');
mylibs.toggleClass(dom,'red cur');

addClass, removeClass, toggleClass(从jquery中抠出来)的更多相关文章

  1. jQuery addClass removeClass toggleClass hasClass is(.class)用法

    jQuery addClass removeClass toggleClass hasClass is(.class)用法 <%@ page language="java" ...

  2. jQuery addClass removeClass toggleClass方法概述

    通过动态改变类名(class),可以让其修改元素呈现出不同的效果.在HTML结构中里,多个class以空格分隔,当一个节点(或称为一个标签)含有多个class时,DOM元素响应的className属性 ...

  3. Jquery重新学习之三[属性addClass(),removeClass(),toggleClass()]

    1:属性.addClass(class|fn)及.removeClass(class|fn) 1.1 .addClass(class) 参数class一个或多个要添加到元素中的CSS类名,请用空格分开 ...

  4. class 添加样式,删,开关 【选择】addClass,removeClass,toggleClass

    <1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>< ...

  5. class 添加样式,删除,开关 【选择】addClass,removeClass,toggleClass

    <1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>< ...

  6. 原生JS实现addClass,removeClass,toggleClass

    jQuery操作class的方式非常强大,但是目前还有一些人不知道如何使用或者由于项目统一性的原因无法使用jquery. 在此写了一个利用原生js来实现对dom元素class的操作方法 1.addCl ...

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

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

  8. 原声js实现addClass removeClass toggleClass效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. jQuery学习笔记 .addClass()/.removeClass()简单学习

    使用jQuery或javaScript来动态改变页面中某个或部分元素的样式,为了实现这样的功能,我们往往都是使用jQuery或javaScript来控制HTML中DOM的类名(class)从而实现增加 ...

随机推荐

  1. Java 静态语句块、语句块、构造函数执行顺序

    class Parent{ static String name = "hello"; { System.out.println("3 parent block" ...

  2. 【C语言】C语言数据类型

    目录: [数据类型图] [基本数据类型]   · 整型   · 实型   · 字符型   · 布尔类型 1.数据类型图 2.基本数据类型 · 整型 用于准确表示整数,根据表示范围的不同分为三种:短整型 ...

  3. 学习iOS前我们需要知道的事情

    什么是iOS iOS是一款由苹果公司开发的操作系统(OS是Operating System的简称),就像平时在电脑上用的Windows XP.Windows 7,都是操作系统 那什么是操作系统呢?操作 ...

  4. 小试SQL SERVER 2014 加密备份

            数据库加密: http://blog.csdn.net/u012992506/article/details/25283035   create master key encrypti ...

  5. JS获取浏览器名和版本信息

    Navigator 对象包含有关浏览器的信息. Navigator 对象属性和方法: <html> <head> <title>JS完整获取浏览器信息</ti ...

  6. 关于rails里集成测试assert_template的写法

    assert_template后面只能跟随模板文件名,不能跟随命名路径.比如routes.rb: get 'login' => 'sessions#new' 在集成测试用例里,只能写成asser ...

  7. ORACLE与mysql中查询第n条到第m条的数据记录的方法

    ORACLE: SELECT * FROM             (                  SELECT 表名.*, ROWNUM AS CON FROM 表名 WHERE ROWNUM ...

  8. java环境变量 windows centos 安装jdk

    windows: 1.安装jdk,注意不是jre 2. 计算机→属性→高级系统设置→高级→环境变量,选择下面的那个系统环境变量 3. 系统变量→新建 JAVA_HOME 变量 . 变量值填写jdk的安 ...

  9. IE下innerText与FoxFire下textContent属性的不同

    <div> 我是中国 人 我<br/>爱 自己 的<div>祖国</div>. <div> IE下输出 我是中国 人 我 爱 自己 的 祖国 ...

  10. label的for属性

    一.使用介绍 <label>专为input元素服务,为其定义标记. for属性规定label与哪个表单元素绑定 label和表单控件绑定方式又两种: 1.将表单控件作为label的内容,这 ...